16.11.2012 Aufrufe

Gästebuch mit PHP und MySQL - Lehrer-Online

Gästebuch mit PHP und MySQL - Lehrer-Online

Gästebuch mit PHP und MySQL - Lehrer-Online

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!