25x20 große HTML Tabelle mit Daten aus einer Datenbank füllen

kingmar

Grünschnabel
Hallo
Ich habe ein problem mit dem befüllen einer HTML Tabelle. Ich haben eine 25 Spalten breite und 20 Zeilen lange (=500 Zellen) große HTML Tabelle. Diese möchte ich gern mit Werten einer Datenbank füllen.
Die Datenbank die ich darüf verwenden möchte besteht aus den Feldern id (von 1-500) und belegt (0 oder 1). Die HTML Tabelle soll nun von links nach rechts gefüllt werden.

Also:
01 02 03 04 05 06 ..... 25
26 27 28 29 30 31.......50
usw.

Wie realisiere ich das in PHP, hab es mittels einer while Schleife versucht

PHP:
  $daten = mysqli_query($db, $feld_select);
					  			  
<table width="875" height="700" border="1" align="center" background="/+parzelle/parzelle_bg.jpg">					  

	while ($zeile1 = mysqli_fetch_array($daten))
.......hier komme ich nicht weiter

Aber hier komme ich nicht weiter. Ich will, dass er sobald das Ende also die 25, 50 usw. erreicht wird, in eine neue Zeile springt.
Kann mir hier jemand auf die Sprünge helfen.
 
Hi,

du musst einen Zähler mitlaufen lassen. Daher empfiehlt es sich, eine for-Schleife zu benutzen:

PHP:
echo '<table width="875" height="700" border="1" align="center" background="/+parzelle/parzelle_bg.jpg"><tr>';
for ($i = 1; $zeile1 = mysqli_fetch_array($daten); $i++) {
  echo "<td>{$zeile1}</td>";

  if ($i % 25 == 0) {
    echo "</tr><tr>";
  }
}

Das if in der Schleife sorgt dafür, dass nach 25 Datensätzen eine neue Zeile beginnt.

Best regards
 
Innerhalb der WHILE Schleife schreibst du folgende Anweisung:

PHP:
$zelle++
if ($zelle == 25) {
    echo "</tr>\n";
    echo "<tr>\n";
    $zelle = 0;
}

Der Zähler $zelle wird bei jedem Durchlauf um 1 erhöht. Wenn du dann bei der 25-ten Zelle angekommen bist, wird die derzeitige Zeile geschlossen und eine neue Zeile begonnen. Der Zähler wird auf 0 gesetzt da vor dem IF-Block der Wert ja erhöht wird.

Ist jetzt nur auf die schnelle, sollte aber stimmen
 
Danke Tim.... Jetzt hab ich schonmal die richtige Anzahl, alle 500 Felder werden ausgefüllt, jedoch steh in jedem Feld das Wort "Array" und nicht die Zahl aus der Datenbank feld, wie realisiere ich dieses? Und warum heißt es {$zeile1} ? Warum die {}?
 
Hi,

da hab ich wohl vergessen den Index anzugeben. ;) Ändere das zu:

PHP:
echo "<td>{$zeile1['id']}</td>";

..oder wie auch immer deine Spalte in der DB heißt.

Die geschweiften Klammern sind eine klarere Darstellung für Variablen innerhalb von Strings. Siehe mehr dazu hier. (Abschnitt Variable Parsing)

Best regards
 
Zurück