PHP-Zugriff auf eine MySQL-Datenbank 2
<?php
// Verbindung aufbauen
$db_link = mysql_connect("localhost","hsg910","geheim");
// bei missglückter Verbindung Fehlermeldung ausgeben
if (is_null($db_link)) echo "<p>keine Verbindung zum Server!</p>";
// Datenbank auswählen
$result = mysql_select_db("hsg910",$db_link);
// bei missglückter Auswahl Fehlermeldung ausgeben
if (!$result) echo "<p>gewählte Datenbank nicht vorhanden!</p>";
// SQL-Anfrage senden
$anfrage_link = mysql_query("select * from adressen",$db_link);
// bei missglückter Anfrage Fehlermeldung ausgeben
if ($anfrage_link == 0) echo "<p>Anfrage missglückt!</p>";
// Antwort auswerten, erster Datensatz in assoziatives Array
$datensatz = mysql_fetch_array($anfrage_link);
echo $datensatz["id"]." ".$datensatz["name"]." ".$datensatz["vorname"]."<br>";
// Antwort auswerten, nächster Datensatz in assoziatives Array
$datensatz = mysql_fetch_array($anfrage_link);
echo $datensatz["id"]." ".$datensatz["name"]." ".$datensatz["vorname"]."<br>";
// Antwort auswerten, nächster Datensatz in assoziatives Array
$datensatz = mysql_fetch_array($anfrage_link);
echo $datensatz["id"]." ".$datensatz["name"]." ".$datensatz["vorname"]."<br>";
// ... wieviel Datensätze sind auszugeben ?
?>
|
Erläuterung
Auf eine SQL-Anfrage (z.B, "select * from adressen") gibt die Datenbank viele Daten als
Ganzes zurück. Der Rückgabewert der Funktion
mysql_query ist ein Zeiger auf diese Daten.
Hat man diesen Zeiger, so ist ein verfeinerter Zugriff, z.B. mit
mysql_fetch_array
möglich.
In obigem Script wird nach Fehlern eine entsprechende Meldung ausgegeben.
Das ist gut!
Schlecht ist, dass nach einem Fehler trotzdem versucht wird, das Script fortzusetzen.
Verwendet man statt
echo den Befehl
die zur Ausgabe der Fehlermeldung, so wird
das Script anschließend abgebrochen. Ausprobieren!
Aufgabe
Schreibe ein PHP-Programm, das eine Tabelle ganz ausgibt. Benutze eine for-Schleife, um alle
Datensätze auszulesen. Ermittle die Anzahl der Datensätze mit
mysql_num_rows.
Informiere dich vorher über die korrekten Feldnamen mit phpmyadmin.