[PHP] MySQL-Daten in Tabelle



  • Hallo,
    ich will SQL-Datensätze in einer Tabelle ausgeben, in der Form:

    Datensatz 1 | Datensatz 2 | Datensatz 3
    Datensatz 4 | Datensatz 5 | Datensatz 6
    ... usw.

    Also jeweils 3 Spalten pro Zeile, nun habe ich dazu folgenden Code geschrieben, der auch ganz gut funktioniert, bis auf eine Kleinigkeit, am Ende der Datensatzausgabe bekomme ich es einfach nicht hin, die Tabelle vernümpftig zu schließen, dass heißt in der letzten Spalte z.B. bei weniger als 3 Datensätzen noch die Tabelle aufzufüllen. Was kann ich verbessern, ich finde den Code selber ziemlich hässlich:

    ...
    // Verbindung zur Datenbank herstellen, usw. ...
    $result1 = mysql_query("SELECT COUNT(ID) FROM table WHERE wert=" . $ID);
    $total = mysql_result($result1,0);
    $result2 = mysql_query("SELECT datensatz, ... FROM table WHERE wert=" . $ID);
    $count = 0;
    if($total != 0)
    {
    echo("<tr>");
    }
    while($row = mysql_fetch_array($result2, MYSQL_ASSOC))
    {
    $reihe = $count / 3;
    if(is_int($reihe) && $count != 1)
    {echo("</tr><tr>");}
    echo("<td>" . $row["datensatz"] . "</td>\n");
    $count++;
    }
    if(is_int($count / 3))
    {echo("</tr>");}
    elseif(is_int($count + 1 / 3))
    {echo("<td> </td></tr>");}
    elseif(is_int($count + 2 / 3))
    {echo("<td> </td><td> </td></tr>");}
    </table>
    ...
    


  • Versuch's mal so:

    // Verbindung zur Datenbank herstellen, usw. ... 
    $result = mysql_query("SELECT datensatz, ... FROM table WHERE wert=" . $ID); 
    $count = 0;
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     if($count%3 == 0) echo '<tr>'."\n";
     echo '<td>'.$row['datensatz'].'</td>."\n";
     if($count%3 == 2) echo '</tr>'."\n";
     $count++; 
    }
    if($count%3 > 0)
    {
     for($i = 3-$count%3; $i > 0; $i--) {
      echo '<td>&nbsp;</td>."\n";
     }
     echo '</tr>'."\n";
    }
    

Anmelden zum Antworten