Aus gesundheitlichen Gründen kann ich diese Seite nicht weiterpflegen, aktualisieren oder euch Support für eure PHP-Probleme anbieten. PHP für dich bleibt aber in seiner aktuellen Form erhalten und funktioniert nach wie vor als Einstieg in die PHP-Welt - gerade, wenn dich technischere Anleitungen bisher immer davon abgehalten haben.
Mehr dazu...

MySQL

Jetzt schauen wir uns...

... die Daten auch tatsächlich an.

Nachdem wir nun die Abfrageergebnisse in einer Variable gespeichert haben, könnte man annehmen, dass man diese Variable einfach nur mittels echo ausgeben muss. Dem ist aber (leider) nicht so.

Die Daten, die wir erhalten haben, verhalten sich ähnlich wie ein Array, müssen jedoch erst übergeben werden.

Wollen wir alle Daten ausgeben (bzw. alle Datensätze) verwenden wir am besten eine while-Schleife, die alle Datensätze übernimmt und ausgibt und solange ausgeführt wird, wie Datensätze im Abfrageergebnis vorhanden sind.

Zur Übernahme der Datensätze wird der Befehl mysqli_fetch_object verwendet.
<?php
$ergebnis = mysqli_query($db, "SELECT url, urlname FROM links");
while($row = mysqli_fetch_object($ergebnis))
{
  echo $row->url;
}
?>
Das schaut auf den ersten Blick viel komplizierter aus, als es tatsächlich ist.

Die erste Zeile macht das, was wir bereits durchgeführt haben (die Abfrage erstellen und ausführen) und ist hier nur, um klar zu machen, was genau wir abgefragt haben.

Danach kommt die while-Schleife. Die Bedingung dazu lautet "solange ein Eintrag aus der Variable Ergebnis als Arrayinhalt in die Variable row geschrieben wird führe die Schleife aus" - dadurch werden alle Datensätze ausgegeben und die while-Schleife automatisch beendet, wenn alles ausgegeben ist.

Schließlich die Anweisung zur while-Schleife. Hierbei wird mittels echo Befehl jeweils der Inhalt der Spalte url ausgegeben (das $row->url ist notwendig, weil wir so die jeweilige Spalte ansprechen).

Über $row-> und den Spaltennamen können die Spalten beliebig angesprochen werden.

Hier wird nur eine URL nach der anderen ausgegeben. Wenn die einzelnen Inhalte voneinander getrennt werden sollen müssen wir das zusätzlich in der while-Schleife angeben, z. B. so:
<?php
$ergebnis = mysqli_query($db, "SELECT url, urlname FROM links");
while($row = mysqli_fetch_object($ergebnis))
{
  echo $row->url;
  echo "<br />";
}
?>
Dadurch würde nach jeder URL eine neue Zeile anfangen.

Für besondere Ausgaben (wie z. B. Tabellen, die jeweils eine bestimmte Anzahl von Spalten haben sollen) genügt ebenfalls eine while-Schleife, jedoch sieht diese dann weitaus umständlicher und komplizierter aus und ist darüber hinaus verschachtelt. Aber das Prinzip bleibt immer gleich.

Als nächstes wäre von Interesse, wie über PHP (also z. B. mittels eines Onlineformulares) Datensätze in der Datenbank aufgenommen werden können.



Dieses Kapitel behandelt einen ersten Einstieg in die Arbeit mit mySQL-Datenbanken. Es dient dem grundsätzlichen Verständnis der Kommunikation zwischen PHP und der Datenbank. Für den produktiven Einsatz ist es wichtig, sich detailierter mit diesem Thema zu beschäftigen und besonderen Augenmerk auf Sicherheitsaspekte zu legen. Ein Einstieg dazu ist der Artikel SQL-Injection.

Autor: Claudia Unkelbach


Spenden via PayPal

=> Weiter
© 2001 - 2024 Claudia Unkelbach
Gießener Straße 75, 35396 Gießen