Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:webdatenbanken

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
db:webdatenbanken [2016/11/22 19:49] – [Anwendungslogik] roehnerdb:webdatenbanken [2016/11/22 20:44] (aktuell) – [Aufgaben] roehner
Zeile 126: Zeile 126:
 Einer der wichtigsten Aspekte einer dynamischen Webseite ist die Interaktion mit dem Anwender. Die einzige Möglichkeit des Anwenders Informationen an das PHP-Skript zu übermitteln, besteht in den HTTP-Request-Methoden GET und POST. Bei beiden Methoden können mehrere Schlüssel-Wertpaare an den Webserver übertragen werden, die dann aus dem PHP-Skript abrufbar sind. Bei GET werden die Daten in der URL <nowiki>(http://www.luo-darmstadt.de?schlüssel=wert&schlüssel2=wert</nowiki>), bei POST in den Header-Informationen, also für den Anwender unsichtbar, transportiert. Die POST-Methode ist aus HTML-Dokumenten nur über Formulare nutzbar. Einer der wichtigsten Aspekte einer dynamischen Webseite ist die Interaktion mit dem Anwender. Die einzige Möglichkeit des Anwenders Informationen an das PHP-Skript zu übermitteln, besteht in den HTTP-Request-Methoden GET und POST. Bei beiden Methoden können mehrere Schlüssel-Wertpaare an den Webserver übertragen werden, die dann aus dem PHP-Skript abrufbar sind. Bei GET werden die Daten in der URL <nowiki>(http://www.luo-darmstadt.de?schlüssel=wert&schlüssel2=wert</nowiki>), bei POST in den Header-Informationen, also für den Anwender unsichtbar, transportiert. Die POST-Methode ist aus HTML-Dokumenten nur über Formulare nutzbar.
  
-Der Zugriff in PHP erfolgt über die globalen Variablen $_GET und $_POST, welche ein assoziatives Array darstellen. Auf den Wert des Schlüssels "name" greifen wir bspw. über den Ausdruck $_GET["name"], wenn dieser per GET übermittelt wurde, zu.+Der Zugriff in PHP erfolgt über die globalen Variablen $_GET und $_POST, welche ein assoziatives Array darstellen. Auf den Wert des Schlüssels "name" greifen wir beispielsweise über den Ausdruck $_GET["name"], wenn dieser per GET übermittelt wurde, zu.
  
 ==== Beispiel: Umgang mit einem GET-Parameter ==== ==== Beispiel: Umgang mit einem GET-Parameter ====
Zeile 177: Zeile 177:
  
 ==== Zugriff auf eine MySQL-Datenbank ==== ==== Zugriff auf eine MySQL-Datenbank ====
-PHP stellt seit Version 5.1 eine neue Schnittstelle zum Zugriff auf Datenbanken bereit, die [[http://de2.php.net/manual/de/intro.pdo.php |PHP Data Objects (PDO)]].+PHP stellt derzeit drei Schnittstellen zum Zugriff auf MySQL/MariaDB-Datenbanken bereit
 +  - mysql - eine veraltete prozedurale Schnittstellenicht mehr in PHP 7 vorhanden 
 +  - mysqli - eine objektorientierte Schnittstelle ab PHP 5.
 +  - PDO_MySQL - eine streng objektorientierte Schnittstelle ab PHP 5.1
  
-Der MySQL-Datenbankserver pflegt eine eigene Benutzer- und Rechteverwaltung. Wir müssen uns also zunächst verbinden und authentifizieren. Dazu erzeugen wir ein Objekt der PDO-Klasse, dessen Konstruktor wir einen sogenannten Data Source Name (DSN), den Benutzernamen und das Passwort als Parameter übergeben:+ 
 +Der MySQL-Datenbankserver pflegt eine eigene Benutzer- und Rechteverwaltung. Wir müssen uns also zunächst verbinden und authentifizieren. Dazu erzeugen wir ein Objekt der mysqli-Klasse, dessen Konstruktor wir den Datenbankserver, den Benutzernamendas Passwort und die Datenbank als Parameter übergeben:
 <code php> <code php>
- $db = new PDO("mysql:host=localhost;dbname=inflk2009"<Benutzername><Passwort>);+  $mysqli @new mysqli($Datenbankserver$Benutzer$Passwort, $Datenbank);
 </code> </code>
-Über das [[http://de2.php.net/manual/de/class.pdo.php |PDO-Objekt]] können wir jetzt mittels SQL Abfragen durchführen.+Über das $mysqli-Objekt können wir jetzt SQL Abfragen durchführen.
 <code php> <code php>
- $query = $db->query("SELECT * FROM gaestebuch"); + $result = $mysqli->query("SELECT * FROM gaestebuch"); 
- $result $query->fetchAll(); + 
-  + while ($entry mysql_fetch_assoc($result)) {
- foreach($result as $entry) {+
    echo "Eintrag von " . $entry["absendername"];    echo "Eintrag von " . $entry["absendername"];
  }  }
-</code> 
- 
-Da der Schulserver aber PDO derzeit nicht unterstützt, muss die SQL-Verbindung über die MySQL-Funktionen von PHP aufgebaut werden: 
-<code php> 
- $db = mysql_connect("localhost", "<Benutzername>", "<Passwort>"); 
- mysql_select_db("<Datenbankname>", $db); 
    
- $query = mysql_query("SELECT * FROM gaestebuch", $db); 
-  
- while($entry = mysql_fetch_object($query)) { 
-   echo "Eintrag von " . $entry->absendername; 
- } 
 </code> </code>
 +
  
 ===== Aufgaben ===== ===== Aufgaben =====
-Ziel der u.g. Aufgaben ist ein sehr einfaches Gästebuch auf PHP-Basis mit Nutzung einer MySQL-Datenbank zum Speichern der Einträge. Zur Hilfe bei der Umsetzung gibt es [[http://schule.kai-wembacher.de/files/12/informatik/php/php-gaestebuch-vorlage.zip |HTML-Vorlagen]].+Ziel der u.g. Aufgaben ist ein sehr einfaches Gästebuch auf PHP-Basis mit Nutzung einer MySQL-Datenbank zum Speichern der Einträge. 
  
 **Aufgabe 1**\\ **Aufgabe 1**\\
Zeile 219: Zeile 212:
 **Aufgabe 2**\\ **Aufgabe 2**\\
 Bestehende Einträge anzuzeigen ist eine der Hauptaufgaben eines Gästebuchs. Die Einträge sollen nun auf der Startseite aufgelistet werden. Wir verzichten hierbei darauf, die Einträge auf mehrere Seiten zu verteilen, alle Einträge sollen auf einer einzelnen Seite gezeigt werden. (eintraege.php) Bestehende Einträge anzuzeigen ist eine der Hauptaufgaben eines Gästebuchs. Die Einträge sollen nun auf der Startseite aufgelistet werden. Wir verzichten hierbei darauf, die Einträge auf mehrere Seiten zu verteilen, alle Einträge sollen auf einer einzelnen Seite gezeigt werden. (eintraege.php)
- 
-Hierfür werden die [[http://de2.php.net/manual/de/intro.pdo.php PDO]] benötigt 
  
db/webdatenbanken.txt · Zuletzt geändert: 2016/11/22 20:44 von roehner