In mijn vorige topic ging ik samen met jullie op zoek naar een oplossing om mijn albums en images uit een directory op te halen. Ik heb toen samen met Ibrahim en snxs geconcludeerd, dat dit het makkelijkst kan met een multidimensionale array. Na wat gehakkel en gesteggel is dit mij mede dankzij hun gelukt. Maar nu de volgende stap...
Ik wil alle albums en images onderbrengen in 2 aparte MySQL tabellen. Ik heb 2 tabellen aangemaakt:
- albums
- albums_photos
Hieronder zien jullie een uitdraai van beide tabellen:
Het is de bedoeling dat de juiste data in de de juiste tabel terecht komt. Dit met behulp van de multidimensionale array, die we in mijn vorige topic ontwikkelt hebben.
Je moet de functie getDirectoryTree vervangen voor een functie die dus verbinding legt met de database. En een array samen stelt van array results, en niet dir results.
Dat is het ongeveer, ik zal later vanavond wel even een voorbeeld schrijven.
// Connect met DB
// Query de database voor alle albums
mysql_query("SELECT * FROM `albums`");
// Kies er 1 uit
// Query de database voor alle bijbehorende foto's van het zojuist uitgezochte album
mysql_query("SELECT * FROM `albums_photos` WHERE `albumID`=".[RANDOM ALBUM ID]);
// Query de database voor alle bijbehorende foto's van het zojuist uitgezochte album
mysql_query("SELECT * FROM `albums_photos` WHERE `albumID`=".[RANDOM ALBUM ID]);
Nog heel vaag, maar misschien zelf iets proberen uit te zoeken? php.net is je grootste vriend, daar staat alle info op, en vaak quote ik letterlijk wat daar staat.
@snxs Bedankt voor je uitleg. Ik bedoel eigenlijk dat alle albums met images worden opgeslagen in een MySQL database. De connectie met de MySQL server bestaat trouwens al, alleen deze wordt niet ge-opent in dit script. Het is veel complexer dan ik zelf gedacht had, want met alleen een simpele foreach kom ik er niet.
Ik heb het volgende idee:
A.) Komt album al voor in tabel albums? Indien niet, voeg een nieuwe record toe met de albumnaam.
B.) Controleer per album of een image al is toegevoegd in tabel albums_photos. Indien niet, dan moet ook hier een record worden toegevoegd.
C.) Komt een images/album wel voor in de database, maar niet in de array, dan moeten de des betreffende records per direct uit de database verwijderd worden.
De records in de database moeten altijd synchroon lopen met de directory content.
Ik weet niet of ik dat allemaal in dit gedeelte van je code zou zetten. Wanneer je je fotoalbums beheert, moet je site dit beheren. Verwijder je een afbeelding dan moet je beheersysteem dit ook uit de database halen. Maak je een nieuw album, dan maakt het beheersysteem een nieuwe map aan, en schrijft een vermelding in de database.
Dat zou ik niet in een "front-end" zetten.
En waarom moet het in 2 tabellen staan als het ook al in een dir staat? Verklaar u nader.