Hallo allen,
Ik hoop dat jullie me op de juiste weg kunnen krijgen met het volgende probleem. Het is echter wel wat leeswerk, excuses hiervoor ;)
Het probleem: Ik ben bezig met mijn muziekcollectie, maar ben nog niet kundig genoeg met PHP om alles zo voor elkaar te krijgen. Dankzij het internet is het meeste zo opgezocht, maar soms loop ik tegen een probleem aan wat waarschijnlijk heel simpel is, maar waar ik toch niet uitkom. Zoals dit dus ;)
Ik wil een overzichtspagina met ArtiestNaam, ClipNaam en Genre, keurig op alfabet etc. Via het phpscriptje roep ik alle gegevens uit de database op die van belang zijn op deze pagina en geef deze weer
Nu is het probleem natuurlijk dat ik ook graag meerdere genres per artiest zou willen weergeven. Ik heb hiervoor een koppeltabel aangemaakt, en gebruik nu de volgende (relevante) tabellen;
Artiest (ArtiestID, ArtiestNaam),
Nummer (NummerID, ArtiestID, NummerNaam),
Genre (GenreID, GenreNaam),
ArtiestGenre (GenreID, ArtiestID)
Nu loop ik echter tegen het probleem aan, dat ik dit niet netjes weergegeven krijg als ik een hele lijst met nummers/artiesten oproep. Zolang een artiest onder 1 genre valt, wordt dit keurig weergegeven, bij meerdere genres krijg ik echter de gegevens ook meerdere keren terug. Er wordt een nieuwe rij voor elk genre aangemaakt.
Nu krijg ik bijvoorbeeld
Savage Garden - Truly Madly, Deeply – Pop (Bij 1 ingevuld genre)
Shakira – Pure Intuition – Pop
Shakira – Pure Intuition – Latin (Bij meerdere ingevulde genres)
Terwijl de gewenste output is:
Savage Garden - Truly Madly, Deeply – Pop
Shakira – Pure Intuition – Latin, Pop
Mijn huidige script (gestript van overbodige zooi):
<?php
$begin = strtolower($_GET['c']);
$select = "SELECT NummerID, NummerNaam, MJArtiest.ArtiestID, ArtiestNaam, MJGenre.GenreID, GenreNaam FROM MJNummer, MJArtiest, MJGenre, MJArtiestGenre WHERE
MJNummer.ArtiestID = MJArtiest.ArtiestID AND
MJArtiestGenre.ArtiestID = MJArtiest.ArtiestID AND
MJArtiestGenre.GenreID = MJGenre.GenreID AND
ArtiestNaam LIKE '$begin%' ORDER BY ArtiestNaam";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)){
echo $list->ArtiestNaam;
echo " - ";
echo $list->NummerNaam;
echo " - ";
echo $list->GenreNaam;
echo "<BR>";
;}?>
Nu zou ik dus graag willen weten hoe ik dan wel de gewenste output krijg. Het is waarschijnlijk iets heel simpels, maar ik kom er zo niet uit. Wie kan me op het juiste spoor helpen? Gebruik ik hiervoor nou een Group By, of moet ik het in een hele andere hoek zoeken? Wie zet me op het juiste pad?
Bij voorbaat dank, alleen al voor het lezen van dit hele gebeuren ;)
248 views