Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » while wird nur 1 mal ausgeführt Antworten
while wird nur 1 mal ausgeführt

beule
Otto-Normal-Poster


Beiträge: 92


hey all

also mein problem ist dass meine while schleiffe nur 1 mal ausgeführt wirt.
1:
	$porto = mysql_query("SELECT * FROM portoklasse");

hier lese ich die daten aus der db... mit mysql_num_row gibt er dann, dass es 3 datensätze sind. sind es auch. soweit alles gut.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
<select name="Porto" class="Auswahl">
      <?  while(list($id, $porto, $text) = mysql_fetch_row($porto)){ 
		if($id == "$lan_porto"){echo"<option value='$id' name='$text' selected > $text $porto </option>";}
		else{echo"<option value='$id' name='$text' >$text $porto</option>";}
	  }		
	?>
     </select>


hier gibt er jetzt aber nur den ersten datensatz aus der db an, anstelle von allen dreien. ich habe absolut keinen plan wieso, vorallem da es bei anderen dropdown feldern funktioniert hat, genau das der gleiche code.
.
hat jeman ne idee was ich hier falsch gemacht habe?
danke
beule

Diese Nachricht wurde geändert von: beule
  Profil   E-Mail   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


Hi,

probiers mal so:

1: 
2: 
3: 
4: 
5: 
6: 
7:
<select name="Porto" class="Auswahl">
      <?  while($row = mysql_fetch_array($porto)) { 
		if($row['id'] == $lan_porto){echo"<option value=".$row['id']." name=".$row['text']." selected > ".$text." ".$porto."</option>";}
		else{echo"<option value=".$row['id']." name=".$row['text'].">".$row['text']." ".$row['porto']."</option>";}
	  }		
	?>
     </select>


Wenn die Variablen Namen haben sollen, kannst du dir das list() sparen und stattdessen ein assoziatives Array nehmen. Dann kannst du auf die Spalten mit den Array-Indizes zugreifen.

---

  Profil   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Statt mysql_fetch_array sollte man direkt mysql_fetch_assoc nutzen, da so nicht alle Felder doppelt im Ergebnis-Array landen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


subjective schrieb am 31.05.2005 15:50
Statt mysql_fetch_array sollte man direkt mysql_fetch_assoc nutzen, da so nicht alle Felder doppelt im Ergebnis-Array landen.


Jep, danke für die Verbesserung. subjective hat eindeutig recht.

---

  Profil   Website   Editieren   Zitieren

beule
Otto-Normal-Poster


Beiträge: 92


danke für die hilfe hab es jetzt mit mysql_fetch:object gelöst, das problem war das ich die variable $porto zwei mal gebraucht habe und somit immer wieder überschrieben habe =P

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben