Hauptmenü

Untermenü

PHP/MySQL - PHP/MySQL Grundlagen - Suchen

1. Die Abschnitte

2. Zum besseren Verständnis

... zeige ich euch jetzt mal, was bei einer pisseligen Abfrage wie SELECT * FROM produkt; passiert. Und warum das so wichtig bei der Kombination mit PHP ist. Zunächst schauen wir uns mal das Ergebnis an.


+----+--------------+--------+--------+---------+
| id produkt      preis  nummer hs_link |
+----+--------------+--------+--------+---------+
|  Schlagbohrer |   5.95 1000-|       |
|  Zement       |  19.95 1000-|       |
|  Kneifzange   199.95 1000-|       |
|  Brecheisen   |  49.95 1000-|       |
|  Hammer       |  19.95 1000-|       |
+----+--------------+--------+--------+---------+
5 Rows in set (0.05 sec)

Hier werden einfach alle Datensätze der Tabelle produkt ausgegeben. Das ist offensichtlich weithin bekannt. Was aber viele Anfänger nicht wissen, ist das Folgende. Der Client ist in der Lage, das Ergebnis in einem Rutsch zu erfassen, PHP nicht. Und das aus gutem Grund. Denn wie will man obige Daten weiterverarbeiten?

3. Daten holen

Darum passiert jetzt Folgendes. Mit mysql_query schickt man eine Anfrage zum Server. Der gibt zunächst mal nur eine Referenz zurück, die man auch als Ressource bezeichnet. Daher sollte man hier tunlichst mit einer Variable arbeiten, sonst geht Erstere flöten, also $ref = mysql_query ($query). Vorrausetzung ist natürlich ein syntaktisch korrektes SQL-Statement. Aber das habe ich ja schon hier erläutert.

Anschließend holt man sich die Daten in PHP per mysql_fetch_irgendwas. Und da man selber keine Ahnung über die Anzahl der Datensätze hat, macht man das in einer Schleife. Dabei passiert dann dieses. Über die Referenz/Ressource holt sich obige PHP-Funktion jeden Datensatz einzeln(!) ab.


Schritt 1
+----+--------------+--------+--------+---------+
| id produkt      preis  nummer hs_link |
+----+--------------+--------+--------+---------+
|  Schlagbohrer |   5.95 1000-|       |
+----+--------------+--------+--------+---------+
Schritt 2
+----+--------------+--------+--------+---------+
| id produkt      preis  nummer hs_link |
+----+--------------+--------+--------+---------+
|  Zement       |  19.95 1000-|       |
+----+--------------+--------+--------+---------+
usw.

Kapiert? Dasselbe Prinzip gilt übrigens auch bei SHOW.

4. Die Sache mit dem 5 Rows ...

Das ist ganz einfach. Diese Information kann man sich bei PHP mit der Funktion mysql_num_rows holen.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt