MySQL Tablle richtig auslesen

kuhlmaehn

Erfahrenes Mitglied
Ich habe ein MySQL Tabelle angelegt die 20 Spalten hat und 2 Zeilen.
Da werden Bestzeiten zu 20 Leveln von 2 Spielern gespeichert.

Jetzt will ich die Zeiten auslesen und in einer Htmltabelle ausgeben und habe folgenes Problem:
mit

Code:
$abfrage = "SELECT Level1 FROM besttimes";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
    {
    echo $row->Level1;
    }

wird die gesamte Spalte Level1 also beide Spieler ausgegeben als
3 min 203 min 16

Obwohl ich eigentlich 3 min 20 und 3 min 16 getrennt ausgeben will.

Ich stelle mir das so vor das ich ein Array für Player1 und eins für Player2 habe mit einem Index für 20 level.

Wie schaffe ich das?

danke
kuhlmaehn
 
PHP:
$sql = "SELECT * FROM besttimes";
$result = mysql_query($sql) OR die(mysql_error());

$player1 = array(0);
$player2 = array(0);

$row = mysql_fetch_assoc($result);
for($i=1; $i<=20; $i++) {
   $player1[] = $row["Level".$i];
}

$row = mysql_fetch_assoc($result);
for($i=1; $i<=20; $i++) {
   $player2[] = $row["Level".$i];
}

var_dump($player1, $player2);
Jetzt hast du deine zwei Arrays. Mit $player1[X] kannst du auf das Xte Level des ersten Spielers zugreifen. Der Index $player1[0] wurde nur zur Vereinfachung gesetzt.

Das nächste Mal bitte ins PHP-Forum!
 
Vielen Dank klappt super!

Aber noch eine Verständisfrage:

Wieso wird beim Anlegen von Player1 die erste Zeile der MySQL Tabelle genommen und beim Anlegen von Player2 die Zweite?
 
Mit mysql_query() wird ein internes Result angelegt, welches das Ergebnis der Abfrage beinhaltet (also alle Zeilen). $result enthält einen Link auf dieses internes Ergebnis. Es existiert auch ein internet Pointer, welcher auf die erste Zeile zeigt. Mit $row = mysql_fetch_assoc($result) werden nun die Daten dieser Zeile in die Variable $row geschrieben und der Pointer sodann auf die nächste Zeile gesetzt. Beim nächsten Aufruf von mysql_fetch_assoc($result) werden also die Daten der zweiten Zeile ausgelesen. Es ist nicht möglich, auf die erste Zeile zurück zu gehen, dazu wird eine neue Abfrage benötigt. Ruft man mysql_fetch_assoc($result) zum dritten Mal auf, obwohl nur zwei Zeilen ausgewählt wurden, wird (bool)false anstatt des Arrays mit den Spalten zurückgegeben.
 
Zurück