HSG

Aktuelle Seite: HSG/Fächer/Informatik/Material/Datenbanken

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.