Gästebuch mit PHP und MySQL - Lehrer-Online
Gästebuch mit PHP und MySQL - Lehrer-Online
Gästebuch mit PHP und MySQL - Lehrer-Online
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Unterrichten <strong>mit</strong> neuen Medien<br />
<strong>Gästebuch</strong> <strong>mit</strong> <strong>PHP</strong> <strong>und</strong> <strong>MySQL</strong><br />
http://www.lehrer-online.de/url/gaestebuch-<strong>mit</strong>-php<br />
Autor: Markus Asmuth<br />
Die Entwicklung von HTML-Seiten ist bei Schülerinnen <strong>und</strong> Schülern sehr beliebt. Die hohe<br />
Lernmotivation lässt sich elegant aufgreifen, um Lernende an die Anwendungsentwicklung<br />
heranzuführen.<br />
In der hier vorgestellten Unterrichtseinheit entwickeln Schülerinnen <strong>und</strong> Schüler in <strong>PHP</strong> <strong>und</strong><br />
<strong>MySQL</strong> ein <strong>Gästebuch</strong> <strong>und</strong> binden es in ihre bestehenden Internetprojekte ein. Der kombinierte<br />
Einsatz von <strong>PHP</strong> <strong>und</strong> <strong>MySQL</strong> bietet viele Vorteile. Beides sind weit verbreitete Open-<br />
Source-Produkte, die speziell für den Einsatz in Web-Anwendungen entwickelt wurden. Provider<br />
bieten für unterschiedlichste Anforderungen preisgünstigen Webspace an. Da <strong>PHP</strong> <strong>und</strong><br />
<strong>MySQL</strong> im Vergleich zu anderen Programmiersprachen <strong>und</strong> Datenbankmanagementsystemen<br />
einfach zu erlernen <strong>und</strong> zu bedienen sind, eignen sie sich hervorragend für Unterrichtsprojekte.<br />
Lernziele<br />
Die Schülerinnen <strong>und</strong> Schüler sollen<br />
§ - ein Entity-Relationship-Diagramm für das <strong>Gästebuch</strong> <strong>mit</strong> DBDesigner entwerfen.<br />
§ - eine Projektdatenbank <strong>und</strong> Tabellen <strong>mit</strong> phpMyAdmin anlegen.<br />
§ - ein HTML-Formular erstellen.<br />
§ - SQL-Befehle formulieren.<br />
§ - <strong>mit</strong> <strong>PHP</strong> Daten aus <strong>MySQL</strong> abfragen <strong>und</strong> Abfrageergebnisse in Arrays speichern.<br />
§ - <strong>mit</strong> <strong>PHP</strong> Benutzereingaben in eine <strong>MySQL</strong>-Datenbank schreiben.<br />
§ - auf die FAQs einer Newsgroup zurückgreifen.<br />
§ - die Funktions- <strong>und</strong> Sprachreferenzen von <strong>PHP</strong>, <strong>MySQL</strong> <strong>und</strong> HTML einsetzen.<br />
Kurzinformation<br />
Thema Programmieren eines <strong>Gästebuch</strong>s <strong>mit</strong> <strong>PHP</strong> <strong>und</strong><br />
<strong>MySQL</strong><br />
Autor Markus Asmuth<br />
Fach Anwendungsentwicklung<br />
Zielgruppe Mittelstufe informationstechnischer Bildungsgänge<br />
Lernfeld Entwicklung <strong>und</strong> Bereitstellung von Anwendungssystemen<br />
Technische Voraussetzungen Internetanschluss, Open-Source-Produkte: Apache,<br />
<strong>PHP</strong>, <strong>MySQL</strong>, phpMyAdmin, DBDesigner<br />
© 2003, Schulen ans Netz e.V. 1
<strong>Lehrer</strong>-<strong>Online</strong><br />
Didaktisch-methodischer Kommentar<br />
In dieser Unterrichtseinheit erarbeiten sich die Schülerinnen <strong>und</strong> Schüler die notwendigen<br />
Programmierschritte durch Nutzen der FAQs einer Newsgroup <strong>und</strong> der entsprechenden<br />
Sprachreferenzen im Internet. Sie entwickeln dabei eine Selbstlernkompetenz, die ihnen in<br />
vielen Situationen ihres Berufslebens zugute kommen wird.<br />
Lernvoraussetzungen<br />
Inhalte vorangegangener Unterrichtseinheiten waren „Gr<strong>und</strong>lagen relationaler Datenbanken“<br />
<strong>und</strong> das "Entity-Relationship-Diagramm". Des Weiteren haben die Schülerinnen <strong>und</strong> Schüler<br />
an Anwendungsbeispielen HTML-Formulare <strong>und</strong> Kontrollstrukturen in <strong>PHP</strong> erlernt. Auf diesen<br />
Lernvoraussetzungen baut die Unterrichtsreihe auf.<br />
Zu jedem der neu eingeführten Inhalte<br />
§ Anlegen von Datenbanken <strong>und</strong> Tabellen <strong>mit</strong> phpMyAdmin<br />
§ SQL (INSERT, SELECT)<br />
§ Zugriff von <strong>PHP</strong> auf <strong>MySQL</strong><br />
§ Arrays<br />
§ Formulare <strong>mit</strong> Checkboxen<br />
§ Auswerten von Formularen<br />
werden Internetressourcen angeboten <strong>und</strong> Zwischenergebnisse gesichert. Als Materialsammlung<br />
bietet sich die FAQ-Liste der Newsgroup de.comp.lang.php (http://www.php-faq.<br />
de/index.html) an.<br />
Schritt 1: Entwurf eines Entity-Relationship-Modells<br />
Das <strong>Gästebuch</strong> nimmt neben den üblichen Eingabemöglichkeiten wie Beitrag, Nickname <strong>und</strong><br />
E-Mail noch das Herkunftsland <strong>und</strong> die Hobbys der Benutzer auf. Die Entitätsmenge Land<br />
steht in einer 1:n-Beziehung <strong>und</strong> die Entitätsmenge Hobby in einer m:n-Beziehung zur Entitätsmenge<br />
Eintrag. Das Entity-Relationship-Diagramm (ERD) wird <strong>mit</strong> dem Open-Source-<br />
Produkt DBDesigner erstellt. Die Schüler nutzen phpMyAdmin, um das ERD in <strong>MySQL</strong> abzubilden.<br />
Schritt 2: Abbildung des ERDs in <strong>MySQL</strong><br />
Die Schülerinnen <strong>und</strong> Schüler nutzen phpMyAdmin, um manuell das ERD in <strong>MySQL</strong> abzubilden.<br />
Als Tabellentyp wird MylSAM gewählt. Eine komfortablere Herangehensweise wäre,<br />
aus DBDesigner ein SQL-Skript zu exportieren <strong>und</strong> dieses dann zum Beispiel <strong>mit</strong> phpMyAdmin<br />
auszuführen.<br />
Schritt 3: Erstellen des <strong>PHP</strong>-Skripts für das Eingabeformular<br />
Für den Aufbau des Formulars müssen zunächst die Länder <strong>und</strong> Hobbys aus der <strong>MySQL</strong>Datenbank<br />
gelesen werden. Das Formularelement „Land“ wird als Pulldown-Menü aufgebaut.<br />
Dem auswertenden <strong>PHP</strong>-Skript wird die Landnummer über<strong>mit</strong>telt. Über Checkboxen<br />
kann ein Benutzer mehrere Hobbys auswählen, deren zugehörige Hobbynummern dann<br />
dem auswertenden <strong>PHP</strong>-Skript als Array zur Verfügung stehen.<br />
Internetressourcen<br />
http://www.php-faq.de/q/q-mysql-zugriff.html<br />
Wie greife ich auf eine <strong>MySQL</strong>-Datenbank zu?<br />
http://www.php-faq.de/q/q-formular-checkbox.html<br />
© 2004, Schulen ans Netz e.V. 2
<strong>Lehrer</strong>-<strong>Online</strong><br />
Wie kann man Checkboxen verarbeiten?<br />
Schülerergebnisse (Quellcode)<br />
http://nopaste.php.cd/8786<br />
form.php<br />
http://nopaste.php.cd/8789<br />
db_connect.php<br />
Schritt 4: <strong>PHP</strong>-Skript zum Schreiben der Benutzereingaben in die Datenbank<br />
Die Benutzereingaben werden vom auswertenden Skript entgegengenommen <strong>und</strong> in die<br />
<strong>MySQL</strong>-Datenbank geschrieben. Da in der Konfigurationsdatei php.ini die Einstellung register_globals<br />
= Off gesetzt ist, stehen die Benutzereingaben im Array $_GET beziehungsweise<br />
$_POST zur weiteren Verarbeitung bereit. Eine Schleife wertet alle Hobbys aus <strong>und</strong> trägt sie<br />
in die Zwischentabelle der m:n-Beziehung ein.<br />
Internetressourcen<br />
http://www.php-faq.de/q/q-formular-variablen.html<br />
Wie übergebe ich Variablen aus einem Formular an ein <strong>PHP</strong>-Script?<br />
http://www.php-faq.de/q/q-mysql-auto-increment.html<br />
Wozu ist auto_increment nützlich?<br />
http://www.php-faq.de/q/q-formular-checkbox.html<br />
Wie kann man Checkboxen verarbeiten?<br />
http://www.php-faq.de/q/q-arrays-aufzaehlen.html<br />
Wie kann ich ein Array aufzählen?<br />
Schülerergebnisse (Quellcode)<br />
http://nopaste.php.cd/8787<br />
senden.php<br />
Schritt 5: <strong>PHP</strong>-Skript zur Ausgabe der <strong>Gästebuch</strong>einträge im Browser<br />
Ein weiteres Skript liest die <strong>Gästebuch</strong>einträge aus der Datenbank <strong>und</strong> generiert eine<br />
HTMLSeite. Die <strong>MySQL</strong>-Abfrage verknüpft mehrere Tabellen (Join).<br />
Internetressourcen<br />
http://www.php-faq.de/q/q-sql-join.html<br />
Wie kann ich zwei Tabellen <strong>mit</strong>einander verknüpfen?<br />
Schülerergebnisse (Quellcode)<br />
http://nopaste.php.cd/8788<br />
index.php<br />
Schritt 6: Freigabe der Gästebücher<br />
Die Schülerinnen <strong>und</strong> Schüler geben ihre Gästebücher auf ihrem „localhost“ frei. Mitschüler<br />
testen das <strong>Gästebuch</strong> <strong>und</strong> tragen ihr Feedback direkt ins <strong>Gästebuch</strong> ein.<br />
© 2004, Schulen ans Netz e.V. 3
<strong>Lehrer</strong>-<strong>Online</strong><br />
Internetressourcen im Überblick<br />
Hier finden Sie im Überblick nützliche Zusatzinformationen <strong>und</strong> die den Schülerinnen <strong>und</strong><br />
Schüler genannten Internetadressen.<br />
Zusatzinformationen<br />
http://apachefriends.org/<br />
http://fabforce.net/<br />
http://quanta.sourceforge.net/<br />
http://www.phpedit.net/<br />
http://webhostlist.de/<br />
http://www.selfhost.com/<br />
Funktions- <strong>und</strong> Sprachreferenzen<br />
http://de.php.net/<br />
http://mysql.de/<br />
http://selfhtml.teamone.de/<br />
FAQs der Newsgroup de.comp.lang.php.*:<br />
http://www.php-faq.de/q/q-formular-variablen.html<br />
Wie übergebe ich Variablen aus einem Formular an ein <strong>PHP</strong>-Script?<br />
http://www.php-faq.de/q/q-stil-normalform.html<br />
Von HTML zu <strong>PHP</strong>: Schreibe Formularverarbeitungen in Normalform<br />
http://www.php-faq.de/q/q-formular-checkbox.html<br />
Wie kann man Checkboxen verarbeiten?<br />
http://www.php-faq.de/q/q-arrays-aufzaehlen.html<br />
Wie kann ich ein Array aufzählen?<br />
http://www.php-faq.de/q/q-mysql-zugriff.html<br />
Wie greife ich auf eine <strong>MySQL</strong>-Datenbank zu?<br />
http://www.php-faq.de/q/q-sql-join.html<br />
Wie kann ich zwei Tabellen <strong>mit</strong>einander verknüpfen?<br />
http://www.php-faq.de/q/q-mysql-auto-increment.html<br />
Wie erfahre ich den Wert des letzten Inkrements (bei auto_increment)?<br />
Informationen zum Autor<br />
Markus Asmuth unterrichtet am Friedrich-List-Berufskolleg in Bonn. Er ist Fachberater für<br />
den Bereich Berufsbildung bei <strong>Lehrer</strong>-<strong>Online</strong>.<br />
© 2004, Schulen ans Netz e.V. 4