Chrisi: MYSQL Abfrage ausgeben

Moinsen,

meine MYSQL-Abfrage lasse ich in einer While-Schleife ausgeben.
Beispiel:

  
Datenbank-Abfrage ...  
<table>  
	<tr>  
		<td><?php echo 'Vorname'; ?></td>  
		<td><?php echo 'Nachname'; ?></td>>  
	</tr>  
<?php  
while($row = mysql_fetch_array($ergebnis)){  
	echo '<tr><td>'.$row[vorname].'</td><td>'.$row[nachname].'</td></tr>';  
 }  
?>  
</table>

Wenn jetzt 1 Datensatz in $ergebnis gespeichert wurde. Wird auch nur eine Zeile ausgegeben.

Ich möchte aber gerne 10 Zeilen haben. Da ich noch 2 Spalten mehr am Ende selbst definieren möchte, mit verschieden werten.

Außerhalb der While-Schleife, kann ich aber nicht auf die Daten $row[] zugreifen.
Wie kann ich die Daten so Speichern, das ich sie außerhalb einer Schleife verwenden kann?

Zb. so:

  
Schleife ...  
<table>  
	<tr>  
		<td><?php echo 'Vorname'; ?></td>  
		<td><?php echo 'Nachname'; ?></td>>  
	</tr>  
	<tr>  
		<td><?php echo $row[0][0]; ?></td>  
		<td><?php echo $row[0][1]; ?></td>>  
	</tr>  
</table>

Vielen Dank

Chrisi

  1. Tach!

      <td><?php echo 'Vorname'; ?></td>  
      <td><?php echo 'Nachname'; ?></td>>  
    

    Wenn du das so in deinem Code hast, ist das verbesserungswürdig. <td>Vorname</td> und <td>Nachname</td> täten es auch.

    Wenn jetzt 1 Datensatz in $ergebnis gespeichert wurde. Wird auch nur eine Zeile ausgegeben.
    Ich möchte aber gerne 10 Zeilen haben.

    10 Zeilen bedeuten, dass du 10 Datensätze hast? Oder wo kommen die Zeilen her?

    Da ich noch 2 Spalten mehr am Ende selbst definieren möchte, mit verschieden werten.

    Und das geht nicht in der Schleife?

    Außerhalb der While-Schleife, kann ich aber nicht auf die Daten $row[] zugreifen.
    Wie kann ich die Daten so Speichern, das ich sie außerhalb einer Schleife verwenden kann?

    Wie wäre es mit einem Array? $rows[] = $row; und vor der Schleife $rows = array();

    dedlfix.

  2. Tach!

    Hm. Dein Ansinnen braucht eigentlich wenig Phantasie.

    while($row = mysql_fetch_array($ergebnis)){
    echo '<tr><td>'.$row[vorname].'</td><td>'.$row[nachname].'</td></tr>';
    }

    Ändere das in:

    $arDaten=array();    # legt einen neuen, leeren Array $arDaten an.  
    while($row = mysql_fetch_array($ergebnis)){  
      $arDaten[]=$row[];                # hängt den Hash $row an $arDaten an.  
    }  
    
    

    ... ergänze den Array $arDaten nach Deinem Gustus ...

    foreach ($arDaten) as $row {  
      echo '<tr><td>'.$row[vorname].'</td><td>'.$row[nachname].'</td></tr>';  
    }
    

    Bingo!

    1. Zu schnell abgeschickt:

      $arDaten[]=$row; # hängt den Hash $row an $arDaten an.

      Sonst wird es natürlich nicht gehen.

      Jörg Reinholz