Moses: Wann </tr> wenn weniger Daten als Tabellefelder?

Hallo,
stehe mal wieder mit einem einfachen Problem, total auf dem Schlauch und bitte um kurzen Denkanstoß.
Habe eine Mysql Abfrage. Das Ergebnis wird in eine Tabelle geschrieben. Nach 5 Datensätzen ist die Tabellenzeile zu ende und eine neue wird geöffnet.
Soweit so gut.
Aber, wenn die Gesamtzahl der Datensätze nicht durch 5 Teilbar ist (z.B. 17 Datensätze), wie berechne ich dann die zusätzlichen leeren Tabellenfelder um die Tabellenzeile richtig abzuschließen (sonst hätte ich ja drei Zeilen mit 5 Feldern und eine Zeile mit nur 2 Feldern)
Da muß ich doch irgendwie die Gesamtanzahl der Datensätze ermitteln (num_rows) und durch fünf Teilen, wenn das Ergebniss dann keine ganze Zahl ist müssen die restlichen <td></td> eingefügt werden. Aber irgendwie ist mir nicht ganz klar wie das geht....
oder ich lasse zwei Variablen mitlaufen, einmal für die Anzahl der Datensätze, einmal für die Anzahl der Tabellenzeilen.
Habt Ihr einen guten Tip für mich?
--
$zahl=mysql_num_rows($sql);
echo "<tr>";
$i = 0;
while($Aus = mysql_fetch_array($erg))
{
echo "<td>".$Aus["Datensatz"];
$i++;
if($i<5)
{
echo "</td>";
}
if($i >=5)
{
echo "</td></tr>" ;
$i = 0;
echo "<tr>";
}

}
--

Dankbar für alle Tips,
Moses

  1. Hallo,
    geht es vielleicht so?
    Kann es leider momentan nicht ausprobieren, wäre daher für eine kurze Nachricht dankbar.
    $sql="select Datensatz from Tabelle";
    $erg = mysql_query($sql);
    $zahl=mysql_num_rows($sql);
    if (!$erg) die("<br>Abfrage nicht erfolgreich");
    else
    {
    echo "<tr>";
    $i = 0 ;
    $j = 0;
    while($Aus = mysql_fetch_array($erg))
    {
    echo "<td>" .$Aus["Datensatz"];
    $i++;
    if ($i<5)
    {
    echo "</td>";
    }
    else
    {
    echo "</td></tr>";
    $j++;
    $i=0;
    echo "<tr>";
    }

    }
    $j=($j*5);
    $k=($j-$zahl);
    while ($k>0)
    {
    echo "<td></td>";
    $k--
    }
    echo "</tr>";
    }

  2. hallo moses,

    wahrscheinlich empfiehlt sich die modulo-division; diese ergibt den rest einer division; also 17 modulo 5 ergibt 2; damit müsste es sich machen lassen; den php-befehl musst du noch nachschauen; den weiß ich nicht auswendig ...

    mfg
    mamue