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 uuml;bernimmt und ausgibt und solange ausgeführt wird, wie Datensätze im Abfrageergebnis vorhanden sind.
Zur Übernahme der Datensätze wird der Befehl
mysql_fetch_object verwendet.
<?php
$ergebnis = mysql_query("SELECT url, urlname FROM links");
while($row = mysql_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.
Für besondere Ausgaben (wie zB 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 zB mittels eines Onlineformulares) Datensätze in der Datenbank aufgenommen werden können.