Jetzt neu: Handgebundene Tagebücher und Notizhefte by Unkelbach Art Handgebundene Notizhefte

Gesundheitliche Gründe zwingen - und bringen(!) - mich zu Veränderungen, die so nie geplant waren: Statt mit Variablen, Schleifen und Abfragen, arbeite ich jetzt mit wundervollem Papier: hauchdünnes Transparentpapier, mattweißes Schreibpapier, rustikales Kraftpapier, flexibler, schwarzer Karton, feste Graupappe und viele mehr. Aus allen entstehen handgebundene Notizbücher, Tagebücher und Notizhefte, die schon beim Ansehen Freude machen - stellt euch mal vor, wie toll es ist, auch noch darin zu schreiben!

PHP für dich bleibt euch natürlich in seiner aktuellen Form erhalten und vielleicht sehen wir uns ja mal bei Unkelbach Art, auf Facebook oder Instagram oder ihr holt euch eines meiner Produkte. Es wäre mir eine große Freude!
Mehr dazu...

Schnipsel

PHP und mySQL - Daten als Tabelle formatiert ausgeben

Als weitergehende Information zu Daten ausgeben, hier eine kurze Erklärung, wie man Daten z. B. in einer Tabelle ausgeben kann. Wir gehen hier davon aus, dass wir bereits die Daten abgefragt und sie in der Variable $ergebnis gespeichert haben.

Wir brauchen jetzt die while-Schleife, in der die Daten über mysqli_fetch_object übernommen werden und die so lange ausgeführt wird, bis alle Daten aus der DB ausgelesen wurden.
<?php
... diverser Code ...
while($row = mysqli_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
... diverser Code, Datenbank-Abfrage ...
 
echo "<table>";
while($row = mysqli_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,"".

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
... diverser Code, Datenbank-Abfrage ...
?>
<table>
<?php
while($row = mysqli_fetch_object($ergebnis))
{
  ?>
  <tr>
  <td>
  <?php
  echo $row->url;
  ?>
  </td>
  <td>
  <?php
  echo $row->urlname;
  ?>
  </td>
  </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.

Autor: Claudia Unkelbach


Spenden via PayPal
© 2001 - 2020 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen