while schleife

Master92

Mitglied
also ich habe folgendes problem
was genau bedeutet
$mysql->query("SELECT menu_ID, menu_name FROM menu WHERE menu_topid=0 and `menu_display` != `0` ORDER BY menu_position ASC");
$nav_array = array();
$i = 0;
while ($nav_data = $mysql->fetcharray()) {
$nav_array[$i] = array('menu_ID'=>$nav_data["menu_ID"], 'menu_name'=>$nav_data["menu_name"]);
$i++;
}

ich mein ich weiss wie eine while funktion ausgeführt wird aber nur mit < und >
jetzt verstehe ich das nicht wie das mit dem = geht also was da genau passiert
oder $mysql->fetcharray() was ist das ich bitte um eine erklärung
danke im voraus
 
Das wird niemals funktionieren, da du in folgender Zeile jeweils die Variable $nav_data überschreibst:
PHP:
$nav_data = $mysql->fetcharray()
Versuche es lieber so:
PHP:
$mysql->query('SELECT `menu_ID`, `menu_name` FROM `menu` WHERE `menu_topid` = 0 AND `menu_display` != 0 ORDER BY `menu_position` ASC');
$nav_array = array();
$i = 0;

while ($row = $mysql->fetcharray()) {
  $nav_array[$i] = array('menu_ID' => $row['menu_ID'], 'menu_name' => $row['menu_name']);
  $i++;
}
 
Eine while Schleife mit = wird so lange ausgeführt, wie der Variablen links davon ein Wert zugewiesen wird bzw. vom fetcharray() ein Wert kommt. Kommt ein false zurück, weil alle Tabelleneinträge gelesen wurden, bricht die Schleife ab.
 
PHP:
$mysql->query('SELECT `menu_ID`, `menu_name` FROM `menu` WHERE `menu_topid` = 0 AND `menu_display` != 0 ORDER BY `menu_position` ASC');
$nav_array = array();
$i = 0;

while ($row = $mysql->fetcharray()) {
  $nav_array[$i] = array('menu_ID' => $row['menu_ID'], 'menu_name' => $row['menu_name']);
  $i++;
}
Dein Code wird niemals funktionieren, da du immer die Variable $row überschreibst ;-]

Gruß
 
Hi,

Dein Code wird niemals funktionieren, da du immer die Variable $row überschreibst ;-]

ich seh da auch keinen Unterschied zum Original (und im Original auch kein Problem ;) )...

@Master92:
oder $mysql->fetcharray() was ist das ich bitte um eine erklärung
danke im voraus

fetcharray() wird eine Methode der Datenbankklasse sein, die nur Du kennst. Anhand des Namens könnte man vermuten, dass sie einen Datensatz aus dem Abfrageergebnis ausliest und als Array zurückgibt. ;)

Und achte in Deinen Beiträgen bitte auf die Rechtschreibung, wie es in unserer Netiquette, Punkt 15 steht. Durchgängig klein geschriebene Beiträge ohne Punkt und Komma sind hier unerwünscht. Danke.

LG
 
Zurück