SELECT – Daten selektieren und ausgeben

Im Artikel Werte selektieren mit SQL hast du schon erste Erfahrungen mit SQL gemacht und ich kann dir sagen, viel schwerer als das wird es nicht :)

MySQL ist quasi SQL in PHP gepackt, dazu ein Vergleich:

SQL

SELECT * FROM kunden

PHP

<?php
	//Verbindung zur Datenbank herstellen
	mysql_connect("localhost", "Benutzername","Passwort") or die ("Verbindung nicht möglich");
	mysql_select_db("Datenbank-Name") or die ("Datenbank existiert nicht");
	
	//Alle Kundendaten selektieren
	$result = mysql_query("SELECT * FROM kunden");
?>	

Das wirkt natürlich jetzt erstmal als wäre es sehr viel mehr Code, doch im Grunde ist nur Zeile 7 entscheidend, denn dort befindet sich unser SQL-Query verpackt im PHP-Befehl „mysql_query“. Wenn wir obiges PHP-Skript ausführen, wird uns aber erstmal nichts ausgegeben. Das liegt daran, weil unser SELECT-Ergebnis in der Variablen „$result“ gespeichert wird. „SELECT“ selektiert schließlich nur die Daten, ausgeben müssen wir sie schon selbst.

SELECT Daten ausgeben

Jetzt haben wir schonmal die Daten in unserer Variable „$result“, doch wie können wir sie jetzt noch anzeigen? Dazu brauchen wir „mysql_fetch_row“ und eine Schleife, die alle Einträge in $result durchläuft:

<?php
	//Verbindung zur Datenbank herstellen
	mysql_connect("localhost", "root","") or die ("Verbindung nicht möglich");
	mysql_select_db("tutorial") or die ("Datenbank existiert nicht");

	//Alle Kundendaten selektieren
	$result = mysql_query("SELECT * FROM kunden");
	
	while($row = mysql_fetch_row($result)) 
		echo $row[0].' - '.$row[1].'<br />';
?>

In Zeile 9 nutzen wir „mysql_fetch_row“ in einer Schleife, um alle Datensätze zu durchlaufen. „mysql_fetch_row“ holst sich jeweils eine Reihe aus $result und speichert diese in der Variablen „$row“. Nun können wir auf $row wie auf ein Array zugreifen. Da wir bislang nur zwei Spalten in unserer Tabelle „kunden“ haben, nutzen wir auch nur „$row[0]“ für den Kundennamen und „$row[1]“ für die Kundenadresse:

Weitere mysql_fetch Varianten

Es gibt neben „mysql_fetch_row“ noch andere Möglichkeiten, Daten aus einem SQL-Ergebnis zu ziehen:

  • mysql_fetch_array – abhängig vom Parameter, kann man nun anstelle von „$row[0]“ auch „$row[’name‘]“ nutzen: Beispiele
  • mysql_fetch_assoc – gibt ein Array mit benannten Feldern aus, also anstelle von „$row[0]“ muss man nun $row[’name‘] nutzen
  • mysql_fetch_object – dein Ergebnis wird nicht als Array, sondern als Object gespeichert. Deshalb greifst du auf die Werte auch anders zu. $row[0] bzw. $row[’name] werden dann zu „$row->name“ und die Kundenadresse zu „$row->adresse“: Beispiele
  • mysql_fetch_field – diese Variante wirst du eher seltener brauchen, denn damit holst du dir nicht nur den Wert der Spalte, sondern auch noch alle Spalteninformationen. Also z.b. den Typ der Spalte, die maximale Länge, ob die Spalte der Primary Key ist, usw.
  • mysql_fetch_lengths – ebenfalls eher seltener benötigt. Anstelle der Werte kannst du dir die Zeichenlänge des Wertes ausgeben lassen: Beispiel

Zusammenfassung

In diesem Teil hast du folgendes kennengelernt:

  • mysql_query – Da packen wir unseren SQL Code rein. Bei einem SELECT-Query sollte das Ergebnis in einer Variablen gespeichert werden
  • mysql_fetch_row – Mit dieser oder anderen Varianten holen wir die selektierten Datensätze aus der Variable heraus
  • Mit einer Schleife können wir alle selektierten Datensätze nacheinander bearbeiten und ausgeben

Bislang haben wir nur zwei Datensätze zum selektieren, das wird langsam langweilig, deshalb werden wir im nächsten Teil mit dem SQL-Befehl INSERT neue Werte in unsere Datenbank eintragen.

hier geht's weiter...



Feedback Formular