Folien



(letzte Synchronisation der PDF-Präsentation: 02.03.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Zweite (und universalere) Möglichkeit: Datensätze mit mysql_fetch_array() auslesen

Hier wird ein indexiertes und/oder assoziatives Array erstellt:

mysql_fetch_array($ergebnis, MYSQL_BOTH) oder mysql_fetch_array($ergebnis) (= Defaulteinstellung) -> Daten werden sowohl unter numerischen als auch assoziativen Indizes abgelegt (d.h. Werte können mit assoziativen oder numerischen Schlüsseln abgerufen werden).

mysql_fetch_array($ergebnis, MYSQL_ASSOC) -> Daten werden unter assoziativen Indizes abgelegt, entspricht genau mysql_fetch_assoc.

mysql_fetch_array($ergebnis, MYSQL_NUM) -> Daten werden unter numerischen Indizes abgelegt

Beispiellisting (alle Varianten sind auskommentiert):

PHP-Code
  // SQL-Abfrage $sql_befehl = "SELECT * FROM kunden"; $ergebnis = mysql_query($sql_befehl);   // Variante 1: mysql_fetch_assoc (zur Erinnerung) /* while ($datensatz = mysql_fetch_assoc($ergebnis)) { print_r($datensatz); echo "<br />"; } */   // Variante 2: mysql_fetch_array($ergebnis, MYSQL_NUM) /* $anzahldatensaetze = mysql_num_rows($ergebnis); while ($datensatz = mysql_fetch_array($ergebnis, MYSQL_NUM)) { echo "<b>" . $datensatz[0] . ". Datensatz (entspricht kundeID): </b><br />"; // $datensatz[0] ist jeweils das erste Feld des Datensatzes = Kunde-ID for ($a = 0; $a < $anzahldatensaetze; $a++) { echo "\$datensatz[$a] ist" . $datensatz[$a] . "<br />"; } echo "<br />"; } */   // Variante 3: mysql_fetch_array($ergebnis, MYSQL_ASSOC)   /* while ($datensatz = mysql_fetch_array($ergebnis, MYSQL_ASSOC)) { echo "<b>" . $datensatz['kundeID'] . ". Datensatz (entspricht kundeID) : </b><br />"; // $datensatz['kundeID'] ist jeweils das erste Feld des Datensatzes foreach ($datensatz as $key => $value) { echo "\$datensatz[" . $key . "] ist " . $datensatz[$key] . "<br />"; } echo "<br />"; } */   // Variante 4: mysql_fetch_array($ergebnis[, MYSQL_BOTH) /* $anzahldatensaetze = mysql_num_rows($ergebnis); while ($datensatz = mysql_fetch_array($ergebnis, MYSQL_BOTH))   HIER KÖNNEN SOWOHL VARIANTE 2 ALS AUCH VARIANTE 3 EINGEFÜGT WERDEN   */  

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: PHP + MySQL - Abfragen mit mysql_fetch_array() ausführen *****

php-MySQL_4-1: Tabelle für folgende Übungen erstellen.

1. Erstellen Sie eine Tabelle namens einfache_abfrage. Diese Tabelle enthält die Felder “id” und “name”.
2. Fügen Sie folgende Datensätze ein: 1, Hans; 2, Dieter; 3, Fritz.
3. Wie lautet die MySQL-Abfrage, um alle Daten der Tabelle auszugeben? Wie lautet die zugehörige PHP-Anweisung?
4. Wie lautet die MySQL-Abfrage, um alle Felder des Datensatzes mit der id=2 auszugeben? Wie lautet die zugehörige PHP-Anweisung?




php-MySQL_4-2: Abfragen in PHP formulieren

1. Stellen Sie eine Verbindung zur Datenbank her.
2. Erstellen Sie in PHP eine Abfrage, die alle Daten der Tabelle ausgibt. Speichern Sie diese Abfrage in einer Variablen namens $sql_befehl_alle_daten.
3. Speichern Sie das Ergebnis in der Variablen $sql_ergebnis_alle_daten.
4. Überprüfen Sie die Funktionsfähigkeit, indem Sie folgenden Code anhängen:

PHP-Code
while ($reihe = mysql_fetch_array($sql_ergebnis_alle_daten, MYSQL_NUM)) { print_r($reihe); echo "<br />"; }  

5. Interpretieren Sie die Ausgabe: Welche Inhalte hat das Array?
6. Wiederholen Sie alle Schritte mit folgender Änderung: Es wird nur der Datensatz mit der id=2 abgefragt.




php-MySQL_4-3: Tabelle abfragen mit mysql_fetch_array(): Lückenlisting

1. Stellen Sie dem folgenden Listing Code voran, der eine Verbindung zur Datenbank herstellt.
2. Ergänzen Sie im folgenden Listing die Lücken und überprüfen Sie es auf Lauffähigkeit.
3. Interpretieren Sie die Ergebnisse der print_r-Ausgaben.

PHP-Code
// Variante 1: numerisches Array echo "<h1>Numerisches Array</h1>";   $sql_befehl_alle_daten = "SELECT * FROM einfache_abfrage"; $sql_ergebnis_alle_daten = mysql_query($sql_befehl_alle_daten);   while ($datensatz = mysql_fetch_array(_____________, MYSQL_NUM)) { // Inhalt des Arrays ausgeben print_r(________________); echo "<br />"; }   // Variante 2: echo "<h1>Assoziatives Array</h1>";   $sql_befehl_alle_daten = "SELECT * FROM einfache_abfrage"; $sql_ergebnis_alle_daten = mysql_query(____________);   while ($datensatz = _____________(______________, MYSQL_ASSOC)) { // Inhalt des Arrays ausgeben print_r(__________); echo "<br />"; }   // Variante 3: echo "<h1>Assoziatives UND numerisches Array</h1>";   $sql_befehl_alle_daten = "SELECT * FROM einfache_abfrage"; _____________ = mysql_query($sql_befehl_alle_daten);   while (_________ = ______________($sql_ergebnis_alle_daten)) // möglich wäre hier auch: ($sql_ergebnis_alle_daten, MYSQL_NUM) { print_r(_____________); echo "<br />"; }  


php-MySQL_4-4: Abfragen mit mysql_fetch_array() erstellen

1. Erstellen Sie in PHP eine Abfrage, die alle Felder des Datensatzes mit der id=2 ausgibt. Diese Abfrage soll in einer Variablen namens $sql_befehl_id2 gespeichert werden.
2. Führen Sie die Abfrage aus. Das Ergebnis soll in der Variablen $sql_ergebnis gespeichert werden.
3. Speichern Sie das Ergebnis in einem assoziativen Array mit dem Namen $ergebnisAssoziativ.
4. Speichern Sie das Ergebnis in einem “echten” Array (mit numerischen Indizes) mit dem Namen $ergebnisNumerisch.
5. Lassen Sie sich die Inhalte der beiden Arrays jeweils mit print_r($variable) ausgeben.