stefan: Datenbankausgabe Problem mit <table>

hallöle,
ich möchte eine DB Ausgabe machen. klappt im Prinzip auch, nur sieht es nicht gans so aus wie ich das will:
DB-Verbindung ...
if (!$number){ echo"<p align="center">Ihre Suchanfrage ergab leider kein Ergebnis</p>";
}else{
while($row = mysql_fetch_array($result)):
?>
<table width="500" align="center" border="1">
<tr><th width="100">Datum</th>
 <th width="120">Sportart</th>
 <th width="280">Ereignis</th></tr>
 <tr><td align="center" width="100"><?php echo $row[datum]; ?></td>
<td align="center" width="120"><a href="po_up.php?ID=<?=$row[ID]?>"><? echo $row[sportart]; ?></a></td>
<td align="center" width="280"><?php echo $row[ereignis]; ?></td></tr>
</table>
<?php
endwhile;
}
?>

Das Problem ist, dass die Tabellenüberschrfit (th) jedesmal wieder mit ausgeben wird. Wenn ich den Bereich vom ersten <tr></tr> vor die while Schleife stelle wird nur der erste Datensatz in die Tabelle geschrieben...?
Wie kann ich diesem Problem beikommen?
vieln Dank für Hilfe & beste Grüße
Stefan

  1. Nicht den Header mit in die Schleife nehmen !

    versuch's mal so:

    else{

    echo"
     <table width="500" align="center" border="1">
     <tr><th width="100">Datum</th>
     <th width="120">Sportart</th>
     <th width="280">Ereignis</th></tr>";

    while($row = mysql_fetch_array($result)){

    echo"
     <tr><td align='center' width='100'> $row[datum]</td>
     <td align='center' width='120'><a href="po_up.php?ID=$row[ID]>$row[sportart]</a></td>
    <td align='center' width="280"> $row[ereignis]</td></tr>
    }
    echo"</table>";
    }
    ?>

    1. dann gibt er aber die überschrift auch bein keinen treffern aus der DB aus....

      1. ...wo ist denn in dem Header eine Variable aus der Datenbank !?

        Den musste doch nicht in die Schleife einzimmern!

    2. Nicht den Header mit in die Schleife nehmen !

      versuch's mal so:

      else{

      echo"
      <table width="500" align="center" border="1">
      <tr><th width="100">Datum</th>
      <th width="120">Sportart</th>
      <th width="280">Ereignis</th></tr>";

      while($row = mysql_fetch_array($result)){

      hab ich versucht, aber dann schreibt er nur den ersten Datensatz
      in die Tabelle. Alle folgenden müssen ohne:
      <table width="500" align="center" border="1">

      <tr><th width="100">Datum</th>
      <th width="120">Sportart</th>
      <th width="280">Ereignis</th></tr>

      auskommen, was natürlich ein absolutes Wirrwarr gibt.
      Versteh ich nich.
      viel Grüße
      Stefan

      1. ich weiß nicht so genau, worauf du hinaus willst.
        Also nochmal ganz optimiert:

        echo"
        <table width="500" align="center" border="1">
        <tr><th width="100">Datum</th>
        <th width="120">Sportart</th>
        <th width="280">Ereignis</th></tr>";

        //Hiermit haste eine schicke Kopfzeile!

        while($row = mysql_fetch_array($result)){

        echo"
        <tr>
        <td>$row[1]</td>
        <td>$row[2]</td>
        <td>$row[3]</td>
        </tr>
        ";

        //Du bekommst nun soviele Zeilen, wie die SQL-Abfrage Ergebnisse leiferte
        //Die Breite und Höhe richtet sich nach den Angaben in der Kopfzeile.

        }
        </table>
        //Tabelle ende

        Wo ist das Prob ??

  2. ist halt ein bischen programierer logic, setz dir einfach eine countervariable und wenn die 1 ist gib den th aus....

    $co=0;
      while($row = mysql_fetch_array($result)):
          $co++;
      ?>
      <table width="500" align="center" border="1">
       <? if($co==1){?>
       <tr><th width="100">Datum</th>
       <th width="120">Sportart</th>
       <th width="280">Ereignis</th></tr>
        <? } ?>
        <tr><td align="center" width="100"><?php echo $row[datum]; ?></td>
       <td align="center" width="120"><a href="po_up.php?ID=<?=$row[ID]?>"><? echo $row[sportart]; ?></a></td>
       <td align="center" width="280"><?php echo $row[ereignis]; ?></td></tr>
       </table>
       <?php
       endwhile;
       }

    1. ist halt ein bischen programierer logic, setz dir einfach eine countervariable und wenn die 1 ist gib den th aus....

      vielen Dank für die Hilfe,
      aber das Problem war, das auch der End Tag der Table ausserhalb
      der while Schleife stehen muss.
      danke und beste Grüße
      stefan