Ik heb doorgaans altijd de volgende code gebruikt om gegevens op te halen uit MySQL:
<?php
/* Performing SQL query */
$query = "SELECT * FROM names ORDER BY name";
$result = mysql_query($query) or die ('Error: ' . mysql_error());
/* Printing results in HTML */
if ($result) {
while ($r = mysql_fetch_array($result)) {
$id = $r["id"];
$name = $r["name"];
echo "$id<BR>$name<BR>";
}
} else {
echo "Niets gevonden.";
}
/* Free resultset */
mysql_free_result($result);
/* Closing connection */
mysql_close($link);
?>
Dit werkte heel lang prima. Ik denk bij de overgang naar een nieuwere PHP versie dat het niet lekker meer werkte, waardoor het script nu niet meer bij "echo "Niets gevonden.";" als de query geen resultaat oplevert.
Iemand een idee hoe ik dit weer werkend krijg? Ik zie zelf de fout namelijk niet.
Zet allereerst even php tags om je code heen, dat leest wat makkelijker.
Daarnaast snap ik niet wat het stukje
<?php
echo "";
?>
in je script doet, en op dat punt staat er ook een } teveel. Je zult waarschijnlijk een error krijgen als de query niets oplevert...
Als je een geldige mysql_query uitvoert, krijg je altijd iets terug, namelijk een resource id. $result bestaat dus wel degelijk ook al zijn er geen gegevens uit de database opgehaald.
Kortom, je zult eerst moeten controleren of er wel degelijk rijen opgehaald zijn door bijvoorbeeld:
<?php
if(mysql_num_rows($result) == 0)
{
echo 'Niets gevonden';
}
else
{
// je verder script
}
?>