<?php

$dvdid = 1;

$sql = "SELECT Genre.genre_id, Genre.genre_naam, dvd.dvd_titel, dvd.dvd_id FROM ";
$sql .= "Genre, dvd";
$sql .= "WHERE dvd.genre_id = Genre.genre_id AND dvd.dvd_id = ".$dvdid.";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
echo "dvd titel " . $row['dvd_titel'] . " en " . $row['genre_naam'];

?>

Er zit een fout in mijn where qua syntex, maar is de manier ook goed?
Ik heb 2 tabellen:
dvd (dvd_id, dvd_titel, genre_id)
Genre(genre_id, genre_naam)

Nu wil ik een querie maken die mij de genre naam geeft van een bepaald dvd ($dvdid). De genre naam bevind zich in het andere tabel.
<?php
$dvdid = 1;

$sql = "
SELECT
Genre.genre_id,
Genre.genre_naam,
dvd.dvd_titel,
dvd_dvd_id
FROM
dvd
JOIN Genre ON dvd.genre_id = Genre.genre_id
WHERE
dvd.dvd_id = ".$dvdid;
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($res);
echo "dvd titel " . $row['dvd_titel'] . " en " . $row['genre_naam'] . "!";
?>
Gewoon de query even netjes uitschrijven, een fraaie JOIN gebruiken en de quotes goedzetten. Uiteraard mag een foutafhandeling niet ontbreken, al is deze nog erg basic. De rest mag je zelf doen! Net zoals de while-lus bij het fetchen.

Succes.

Ps. Het gebruik van hoofdletters is bij kolom- en/of tabelnamen af te raden, daar ga je tikfouten mee maken. Dat gaat dus bugs opleveren.
Bedankt voor de tip en hulp!!
SELECT g.genre_id, g.genre_naam, d.vdv_titel, d.dvd_id FROM dvd AS d, genre AS g WHERE d.genre_id = g.ganre_id AND d.dvd_id = '" . $dvdid . "'
Spiderpig schreef op 26.10.2007 08:53
SELECT g.genre_id, g.genre_naam, d.vdv_titel, d.dvd_id FROM dvd AS d, genre AS g WHERE d.genre_id = g.ganre_id AND d.dvd_id = '" . $dvdid . "'
Deze oplossing moest vooral leesbaar zijn?

Reageren