» Startseite
» Newsübersicht
» Kontakt
» Impressum

» Forum
» Gästebuch

» Einführung PHP
» Einführung MySQL
   » Anfang
   » Tabellen füllen
   » Verbin. aufbauen
   » Daten ausgeben
   » Weitere Abfragen
   » Daten hinzufügen
   » Daten ändern
   » Daten löschen
   » Anzahl d. Zeilen
   » Verbin. beenden
   » MySQL-Fehler


PHP-Einfach.de

Counterdienst:
Digicount.de
Unser werbefreier Counter- und Statistikdienst

Einfache Datenabfrage und Ausgabe

Nach dem letzten Kapitel habt ihr immerhin schon einige Daten in eurer Tabelle. Doch wie bekommt man sie wieder raus? Zuerst einmal muss man wieder den obligatorischen Schritt mit dem Verbindungsaufbau machen.

Einfache Abfrage

Eine einfache Abfrage ist gar nicht so kompliziert, hier ist erst mal die allgemeine Form:
<?php
$abfrage = "SELECT Spaltenname FROM Tabellenname";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo "$row->Spaltenname";
   }
?>
Auf unser Beispiel mit der Linkliste würde bezogen, würde es z.B. so aussehen:
<?php
$abfrage = "SELECT url FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo "$row->url <br>";
   }
?>
Zuerst wird die Anfrage gesendet, dies geht wieder per mysql_query(). Danach folgt eine while-Schleife, die ausdrückt: "Führe die Anweisung solange aus, bis in das Array $row keine Werte mehr geschrieben werden. ". Dazu benutzen wir den Befehl mysql_fetch_object()

Um nun einzelne Spalten anzusprechen muss man als Anweisung
echo "$row->spaltenname";
benutzen, wobei man natürlich die Werte nicht nur ausgeben muss, sondern sie auch z.B. überprüfen lassen kann.
Diese Ausgabe funktioniert aber nur innerhalb der while-Schleife, außerhalb nicht.
Innerhalb der while-Schleife könnt ihr ganz normale PHP-Befehle benutzen und sogar weitere Tabellen abfragen.

Natürlich möchte man nicht nur eine Spalte einer Tabelle ausgeben. Um mehrere auszugeben muss man die Abfrage etwas anpassen:
<?php
$abfrage = "SELECT id, url, urlname FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo "$row->id, $row->url, $row->urlname <br>";

   }
?>
Dabei werden alle Spaltennamen mit einem Komma von einander getrennt.

Möchte man alle Spalten abfragen, kann man auch anstatt die Spaltennamen zu schreiben, ein * benutzen.
<?php
$abfrage = "SELECT * FROM links";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
   echo "$row->name, $row->url, $row->urlname <br>";

   }
?>
Achtung: Man kann zwar das Sternchen (*) benutzen, allerdings ist die Ausgabe dann etwas langsamer, denn MySQL muss alle Spalten abfragen und zwischenspeichern, obwohl evt. nur 2 oder 3 Spalten benötigt werden. Auf Rechnern mit wenig Arbeitsspeicher kann so das Script schon merklich langsamer werden. Deswegen sollte man die verschiedenen Spaltennamen mit einem Komma voneinander trennen.
Auch wenn man alle Spalten benötigt, sollte man die Spalten einzeln aufführen, denn so muss der Server die Reihenfolge nicht immer wieder neu berechnen.
Allerdings sollte man darauf nur achten, wenn man viele (8 und mehr) Abfragen pro Seite hat, und dieses Script viele Personen (30 und mehr) auf einmal benutzen, oder wenn man einen langsamen Server hat. Ist dies nicht der Fall, dann kann man ruhig Sternchen benutzen, denn den der zeitliche Unterschied ist kaum messbar.

In Beispielen findet man zwar meistens ein Sternchen, denn so muss der Autor nicht darauf achten, dass der Leser die Datenbank richtig abfragt.

Es gibt aber noch viele weitere Abfragen.

Autor Andavos & Urza

News

Forum

Newsletter


© PHP-Einfach.de 2003 - 2007