Ik ben bezig met een script dat een titel van een produkt uit een database haalt, maar PHP is zo (on)vriendelijk om de titel vaker dan één keer uit de database haalt, namelijk eindeloos. Ik heb het script enkele malen gechekt, maar kon geen fouten vinden. Zijn er mensen die mij alstjeblieft willen helpen???
Hieronder zie je het script.

Alvast hartelijk bedankt!!!

///// script.php?werk=1 /////
<?
$username = "X";
$password = "X";
$hostname = "X";
$database = "X";
$connection = mysql_connect($hostname,$username,$password);
$db = mysql_select_db($database,$connection);
while ($row = mysql_fetch_array(mysql_query("SELECT * FROM werken WHERE status = \"on\" AND id = \"".$werk."\""))){
extract($row);
print("<h1>".$titel."</h1>");
}
$connection = mysql_close($connection);
?>
HUH???
Arjan Kapteijn schreef op 23.04.2006 16:05
echo $query, en copy past dat eens in phpmyadmin. Vergelijk dat is met wat je op wilt halen.

Dit snap ik echt helemaal niet...........
while ($row = mysql_fetch_array(mysql_query("SELECT * FROM werken WHERE status = \"on\" AND id = \"".$werk."\""))){

Uitleg waarom dit eeuwig duurt.
While blijft doorgaan zolang hetgeen tussen de haakjes een waarde geeft. En aangezien de hele regel dus steeds wordt uitgevoerd wordt ook mysql_select(...) steeds uitgevoerd en die geeft een (hetzelfde) resultaat. Dus mysql_fetch_array(..) krijgt ook steeds (dezelfde) waardes. Dus ook $row krijgt steeds (dezelfde) waarde.
Ik heb even je script ingekort en netjes met inspringen helder gemaakt. Nu zie je gelijk dat je tijdens de eerste while-loop je $vars verandert. En dan gaat het uiteraard fout.

<?php
$query = "SELECT .....";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
$query = "SELECT ......";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
}
$query = "SELECT ......";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
}
}
?>
ja thnx;)

Reageren