zandzpider Skrevet 12. oktober 2009 Del Skrevet 12. oktober 2009 Her er det kun brukt 1 spørring med flere joins, satt sammen med php. <?php //henter db connection include_once('config.php'); $query = "SELECT linkfilmspraak.linkfilmspraakid ,linkfilmsjangere.linkfilmsjangereid, filmer.fiid, filmer.filmtittel, sjangere.sjanger, spraak.spraak FROM filmer LEFT JOIN linkfilmspraak ON linkfilmspraak.linkfilmspraak_fiid = filmer.fiid LEFT JOIN linkfilmsjangere ON linkfilmsjangere_fiid = filmer.fiid LEFT OUTER JOIN sjangere ON linkfilmsjangere_sjid = sjangere.sjid LEFT OUTER JOIN spraak ON spraak.spid = linkfilmspraak_spid ORDER BY filmer.filmtittel ASC, sjangere.sjanger ASC, spraak.spraak ASC"; $q = mysql_query($query) or die(mysql_error()); $array = array(); while($res = mysql_fetch_object($q)) { //create results array if(array_key_exists($res->fiid, $array) == FALSE) { $array[$res->fiid]['tittel'] = $res->filmtittel; $array[$res->fiid]['sjanger'][$res->linkfilmsjangereid] = $res->sjanger; $array[$res->fiid]['spraak'][$res->linkfilmspraakid] = $res->spraak; } else { $array[$res->fiid]['sjanger'][$res->linkfilmsjangereid] = $res->sjanger; $array[$res->fiid]['spraak'][$res->linkfilmspraakid] = $res->spraak; } } echo '<table> <tr> <td id="filmtittel">Tittel</td> <td id="sjanger">Sjangere</td> <td id="spraak">Språk</td> </tr>'."\r\n"; foreach($array AS $key => $res) { echo '<tr>'."\r\n"; echo '<td>'.$res["tittel"].'</td>'; echo '<td>'; $count = 0; foreach($res["sjanger"] AS $sjanger) { $count++; $eyecandy = ($count == count($res["sjanger"])) ? "." : ", "; echo $sjanger.$eyecandy; } echo '</td>'; echo '<td>'; $count = 0; foreach($res["spraak"] AS $spraak) { $count++; $eyecandy = ($count == count($res["spraak"])) ? "." : ", "; echo $spraak.$eyecandy; } echo '</td>'; echo '</tr>'."\r\n"; } echo '</table>'."\r\n"; ?> Lenke til kommentar
augustinus Skrevet 11. november 2009 Forfatter Del Skrevet 11. november 2009 Dette ser ut til å fungere utmerket! Takker så mye, zandzpider! Her er det kun brukt 1 spørring med flere joins, satt sammen med php. <?php //henter db connection include_once('config.php'); $query = "SELECT linkfilmspraak.linkfilmspraakid ,linkfilmsjangere.linkfilmsjangereid, filmer.fiid, filmer.filmtittel, sjangere.sjanger, spraak.spraak FROM filmer LEFT JOIN linkfilmspraak ON linkfilmspraak.linkfilmspraak_fiid = filmer.fiid LEFT JOIN linkfilmsjangere ON linkfilmsjangere_fiid = filmer.fiid LEFT OUTER JOIN sjangere ON linkfilmsjangere_sjid = sjangere.sjid LEFT OUTER JOIN spraak ON spraak.spid = linkfilmspraak_spid ORDER BY filmer.filmtittel ASC, sjangere.sjanger ASC, spraak.spraak ASC"; $q = mysql_query($query) or die(mysql_error()); $array = array(); while($res = mysql_fetch_object($q)) { //create results array if(array_key_exists($res->fiid, $array) == FALSE) { $array[$res->fiid]['tittel'] = $res->filmtittel; $array[$res->fiid]['sjanger'][$res->linkfilmsjangereid] = $res->sjanger; $array[$res->fiid]['spraak'][$res->linkfilmspraakid] = $res->spraak; } else { $array[$res->fiid]['sjanger'][$res->linkfilmsjangereid] = $res->sjanger; $array[$res->fiid]['spraak'][$res->linkfilmspraakid] = $res->spraak; } } echo '<table> <tr> <td id="filmtittel">Tittel</td> <td id="sjanger">Sjangere</td> <td id="spraak">Språk</td> </tr>'."\r\n"; foreach($array AS $key => $res) { echo '<tr>'."\r\n"; echo '<td>'.$res["tittel"].'</td>'; echo '<td>'; $count = 0; foreach($res["sjanger"] AS $sjanger) { $count++; $eyecandy = ($count == count($res["sjanger"])) ? "." : ", "; echo $sjanger.$eyecandy; } echo '</td>'; echo '<td>'; $count = 0; foreach($res["spraak"] AS $spraak) { $count++; $eyecandy = ($count == count($res["spraak"])) ? "." : ", "; echo $spraak.$eyecandy; } echo '</td>'; echo '</tr>'."\r\n"; } echo '</table>'."\r\n"; ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå