Probleme mit While Schleife

tioz

Grünschnabel
Hey leute, hab ein große Problem mit einer While schleife. Diese ist eine Endlosschleife und ich weiß nicht wie ich das jetzt verhindern soll. hab jetzt schon 2 Stunden rumprobiert.

Vielleicht könnt ihr mir ja helfen.

PHP:
$qrystr = $start.','.$max;

$qry = "SELECT * FROM ".PRE."module WHERE roots = 1 limit {$qrystr}";

while($row = mysql_fetch_array(mysql_query($qry))) {


$data = array();

$data['icon'] = '<img src="../images/module/'.$row['icon'].'.png" alt="Icon" />';
$data['dir'] = $row['dir'];
$data['name'] = $row['name'];
$temp->assign('mod', $data);
$temp->display('roots.tpl');

}

Wäre für hilfe dankbar


Und Frohe Ostern noch :)
 
Hi,

probiers mal so:

PHP:
$qrystr = $start.','.$max;

$qry = mysql_query("SELECT * FROM ".PRE."module WHERE roots = 1 limit ".$qrystr);

while($row = mysql_fetch_array($qry)) {


$data = array();

$data['icon'] = '<img src="../images/module/'.$row['icon'].'.png" alt="Icon" />';
$data['dir'] = $row['dir'];
$data['name'] = $row['name'];
$temp->assign('mod', $data);
$temp->display('roots.tpl');

}
 
Wieso sollte das Query eine Endlosschleife sind?

Poste doch bitte mal die Variable $qry bei deiner ersten Variante
 
Bei einer Schleife wird die Bedingung bei jedem Durchlauf geprüft, das heißt der Ausdruck ausgewertet. Bei dir ist die Datenbankabfrage selbst Teil der Bedingung und sie wird damit auch bei jedem Durchlauf ausgeführt. Damit hingegen wird die Bedingung der Schleife bei jedem Durchlauf erfüllt, womit die Schleife endlos läuft.
Birnkammers Vorschlag ist da schon richtig, die Datenbankabfrage außerhalb der Schleifenbedingung auszuführen.
 
Zurück