niCo: eine tabelle in zwei schleifen verpackten

Hi,

ich möchte gerne mit einer schleife daten aus einer datenbank auslesen, diese soll er dann in eine tabelle schreiben.

Jedoch soll dies nicht immer in einer neuen <td> passieren.
Mir schwebt da vor, dass es immer 3 Zeilen gibt und 4 Spalten.

Die schleife für die Information krieg ich ja noch hin... aber dann stehen die alle in <td> untereinander... also brauche ich eine schleife, die noch die <tr> definiert...

Wie kann ich sowas machen??

meine eine schleife sieght jetzt so aus:

while (list($Vorname, $Nachname, $Alter, $Betreuer, $Von, $Bis, $Kommentar, $ID, $Bildname) = mysql_fetch_row($erg))
     {

$Bildpfad =  "istegal!".$Bildname;

echo "<td class=rowData><a href="$Bildpfad" target="_blank"><img src="$Bildpfad" width="200" height="150"></a><br>$Vorname $Nachname<br>$Von - $ $Bis</td></tr>";

danke schonmal :)
mFg niCo

  1. Hello,

    wenn die Datenmenge aus der Datenbank nicht zu groß ist, kannst Du sie erst in einem Array zwischenspeichern. Das kannst Du dann bei passenden Aufbau wahlweise Spaltenweise oder zeilenweise in eine Tabelle übertragen.

    Für die Gestaltung der Zeilen als HTML-Ausgabe solltest Du Dir eine Funktion schreiben. Dieser übergibst Du ein Array mit den Spaltenwerten.

    function make_trow($_row)
      {
        $out = "":

    if (!is_array($_row)) return false;    ### wenn kein Datenarray vorhanden, gleich abbrechen

    $out .= "  <tr>\n";

    foreach($_row as $key => $val)
        {
          $out .= "    <td class="td01">";
          $out .=      $htmlentities($val,ENT_QUOTES);
          $out .=     "</td>\n";
        }

    $out .= "  <tr>\n";

    return $out;
      }

    Und diese Funktion verpackst Du nun in eine ähnliche, die die Tabelle baut

    function make_table($_table)
      {
        $out = "":

    if (!is_array($_table)) return false;    ### wenn kein Datenarray vorhanden, gleich abbrechen

    $out .= "<table>\n";

    foreach($_table as $key => $_row)
        {
          $out .= make_row($_row);
        }

    $out .= "</table>\n";

    return $out;
      }

    Ich hoffe, dass ich keinen Schreibfehler mehr drin habe.
    Natürlich kannst Du den Funktionen noch Spaltenbreiten, Formatrierungen, Farbwechsel, CSS-Klassen usw beibringen...

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau