Es ist geschafft! PHP für dich ist ab sofort auch als Buch erhältlich. Endlich im handlichen Format, zum Nachschlagen, mitnehmen oder gemütlich nebenbei lesen. Mit noch mehr Informationen und zusätzlichen Beispielen!
Jetzt bei Amazon oder BoD bestellen!
Schnipsel
PHP und mySQL - Daten als Tabelle formatiert ausgeben
Als weitergehende Information zu
Daten ausgeben, hier eine kurze Erklärung, wie man Daten zB in einer Tabelle ausgeben kann. Wir gehen hier davon aus, dass wir haben bereits die Daten abgefragt und sie in der Variable
$ergebnis gespeichert haben.
Wir brauchen jetzt die
while-Schleife, in der die Daten über
mysql_fetch_object übernommen werden und die so lange ausgeführt wird, bis alle Daten aus der DB ausgelesen wurden.
<?php
...
while($row = mysql_fetch_object($ergebnis))
{
echo $row->url;
echo "<br>";
echo $row->urlname;
echo "<br><br>";
}
?>
Das liefert zunächst einfach nur die Url und den Urlnamen zurück, allerdings mit Zeilenumbrüchen (br) voneinander getrennt, also so:
http://www.schattenbaum.net
Schattenbaum
http://www.htmling.net
HTMLing
usw.
Zwischen jedem Eintrag ist also ein Absatz, der dadurch entsteht, dass am Ende jedes Durchgangs der while-Schleife - also am Ende jedes Datensatzes - ein doppeltes br verwendet wird.
Ganz ähnlich gehen wir jetzt vor, wenn die Daten in eine Tabelle geschrieben werden sollen. Dabei müssen wir zuerst überlegen, welcher Teil der Tabelle für jeden Datensatz wiederholt werden muss bzw. welcher für jede Datenzelle wiederholt werden muss.
Da wir nicht für jeden Datensatz eine extra Tabelle, sondern nur eine extra Reihe aufrufen wollen, muss der Aufruf der
Tabelle außerhalb der while-Schleife stehen.
<?php
Div. PHP-Code, DB-Abfrage
echo "<table>";
while($row = mysql_fetch_object($ergebnis))
{
echo "<tr>";
echo "<td>",$row->url,"</td>";
echo "<td>",$row->urlname,"</td>";
echo "</tr>";
}
echo "</table>";
?>
Jetzt wird alles in einer Tabelle ausgegeben, wobei für jeden Datensatz eine neue Tabellenzeile angelegt wird, weswegen die <tr> zwar
innerhalb der while-Schleife stehen aber nur am Anfang und am Ende der Schleife aufgerufen werden, im Gegensatz zu den <td>, die bei jeder Ausgabe eines Feldes angewandt werden.
In dem Fall wurde der HTML-Code direkt über Echos ausgegeben, interessant ist dabei vielleicht das Schema "<td>",$row-url,"</td>".
Die Textteile werden dabei in Anführungszeichen gesetzt und durch Komma von den Variablen (hier $row->url) getrennt.
Eine 2. Variante wäre es natürlich, den HTML-Teil außerhalb des PHP-Codes zu schreiben und dabei auf Teile der Echos zu verzichten:
<?php
Div. PHP-Code, DB-Abfrage
?>
<table>
<?php
while($row = mysql_fetch_object($ergebnis))
{
?>
<tr>
<td>
<?php
echo $row->url;
?>
</td>
<td>
<?php
echo $row->urlname;
?>
</tr>
<?php
}
?>
</table>
<?php
}
?>
Das ist jetzt ziemlich unübersichtlich, allerdings soll es auch nur die Möglichkeiten darstellen, die man hat. In der Praxis wird man in den meisten Fällen beide Varianten kombinieren und einen Teil außerhalb des PHP-Bereichs schreiben und den Rest per echo ausgeben.