foreach Schleife Fehlersuche

rollerueckwaerts

Erfahrenes Mitglied
Hallo liebe tutorials.de Gemeinde,
versuche ganz simpel eine komplette Spalte aus der Datenbank auszugeben, doch ich hab so meine Schwierigkeiten. Aus einem Grund den ich jetzt noch nicht verstehe funtioniert das alles nicht. Vielleicht könnt ihr mir helfen.

Der Code:
PHP:
$sql = "SELECT firma FROM products";
$result = mysql_query($sql) or die (mysql_error());
$rows = mysql_fetch_array($result); 

foreach($rows as $row){

$firma = $row->firma;
echo $firma;
print_r($row);


Die Datenbanktabelle schaut so aus

Code:
id     betrieb
1      firma1    
2     firma2
3     firma 3
also bisher sind 3 Zeilen Einträge vorhanden.

Jetzt kommt die Ausgabe des Codes.
Ich wünsche mir ja das nun alle 3 (firma1,firma2 usw.) hintereinander als Liste ausgegeben werden.

Mit echo $firma kommt leider nichts, zur Kontrolle hab ich print_r benutzt.
Da zeigt er
Code:
firma1firma1
Also er gibt die erste Zeile 2 mal aus. Nur Warum ?
Ich weiß nicht so richtig weiter. Hab schon nach foreach gegoogelt, einige threads gelesen, doch ich weiß nicht was ich falsch mache. Jemand der sich auskennen erkennt den Fehler bestimmt auf den ersten Blick,


Lieben Dank schonmal jetz

Gretz
Tobi
 
Weil du letzendlich nur ein Ergebis aus der Datenbank ausliest.

Richtig wäre es so:

PHP:
$query = "SELECT `firma` FROM `products`";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
  echo $row['firma'];
}

Die [phpf]while[/phpf] Schleife läuft so lange, bis [phpf]mysql_fetch_assoc[/phpf] false zurückliefert, also kein weiterer Datensatz vorliegt.
 
Zurück