Dieses Tutorial erklärt die Grundlagen einer Datenbank in Verbindung mit der Abfragesprache SQL und der Scriptsprache PHP. Dafür wird entlang eines Beispiels ein Datenmodell entwickelt und seine Umsetzung beschrieben. Anhand von einigen Beispielen wird dabei versucht, die Theorie etwas aufzulockern.
Die Kenntnis der Sprache HTML wird vorausgesetzt und in dem vorliegenden Tutorial werden im Prinzip keine HTML-Befehle beschrieben. Wer meint, noch Nachholbedarf zu haben, kann sich unter [8] noch ein Nachschlagewerk besorgen.
Dieses Tutorial wurde ursprünglich für Skripte geschrieben, die auf dem Server der Sites http://ffm.junetz.de/ und http://of.junetz.de/ Verwendung finden. Sie kann aber auch für alle anderen Server benutzt werden, die dieselben Grundkomponenten nutzen, wie in Abschnitt 1.3 beschrieben. Etwaige Server-spezifische Besonderheiten müssen dabei natürlich außer acht gelassen werden.
Neue Versionen werden per eMail angekündigt, wenn du auch eine eMail bekommen willst,
kannst du dich auf der Mailingliste eintragen.
Wenn Du Anregungen hast, was noch verbessert werden kann, würden wir uns über eine eMail an dsp-autor@ml.junetz.de sehr freuen.
Im SQL- und PHP-Teil werden die grundlegen Befehle vorgestellt. Für eine ausführliche Befehlsübersicht müssen die Original-Anleitungen zu Rate gezogen werden.
PHP wird oft in Verbindung mit HTML-Formularen eingesetzt, weil die Daten, die sie
verschicken, auf besonders einfache Weise mit Hilfe von PHP ausgewertet und
weiterverarbeitet werden können. Seine eigentlichen Stärken spielt PHP dabei dann aus, wenn
es im Zusammenspiel mit einer Datenbank genutzt wird; hier bietet sich v.a. MySQL an, denn
dieses wird direkt unterstützt. Schlußendlich fehlt noch die Integration in einen Webserver
wie z.B. den weitverbreiteten Apache, ohne die PHP HTML-Seiten, die von Clients wie Browsern
angefragt werden, nicht vor der Auslieferung modifizieren kann. Insgesamt ergibt sich nun
aus der Summe dieser Teile die Möglichkeit, dynamisch generierte Webseiten zu erzeugen. Dieses
System von Grundkomponenten hat wegen seiner häufigen Verwendung sogar einen -- oder um genau
zu sein mehrere -- Namen erhalten: LAMP bzw.
WAMP
oder auch WIMP
.
Die Installation von MySQL, Apache und PHP wird in diesem Tutorial nicht beschrieben. Zu diesen Themen gibt es neben den Beschreibungen in der Dokumentation auch etliche Webseiten, die das Thema ausführlich behandeln.
Eine weitere Informationsquelle sind die FAQs. Die FAQ
von MySQL [10] ist noch im Aufbau und deshalb noch nicht so
ausführlich; sie enthält jedoch schon einige nützliche Informationen. Die PHP-FAQ [9]
müßte eigentlich AFAPQ
heißen: Es gibt für fast
jede erdenkliche Frage eine Antwort.
Neben der PHP-FAQ gibt es noch unzählige weitere Informationsquellen zu PHP (und häufig auch MySQL) im Internet. Gute Startpunkte dafür sind die PHP-Portale, wie z.B. [11] oder [12]. Nimm dir einfach mal einen Abend frei und surf los. Wenn du Glück hast, findest Du das, was Du selbst programmieren wolltest, schon irgendwo fertig oder zumindest Teile davon.
Trotz ausführlicher Anleitungen kann es einem passieren, daß man an der ein oder anderen Stelle nicht weiterkommt. Für solche Fälle gibt es Newsgroups und Mailinglisten im Internet, wo andere Leute in ihrer Freizeit versuchen, zu helfen. Die Mailingliste zu MySQL findet sich auf der MySQL-Homepage [4] unter Documentation; die deutschsprachige Newsgroup heißt de.comp.datenbanken.mysql. Zu PHP gibt es gleich mehrere Mailinglisten in Englisch, die sich auf der PHP-Homepage [6] unter support finden. Die deutsche Mailingliste wird vom PHP-Center [11] betrieben. Die Newsgroup zu PHP heißt de.comp.lang.php. Auch wenn man keine aktuellen Probleme hat, kann es sich lohnen, dort mitzulesen.
Dieser Teil ist nicht existentiell, um nachher Datenbanken zu entwickeln; allerdings sollte man es sich schon einmal durchlesen. Und sei es nur, um einmal die Begriffe gehört zu haben ;-).
Wenn wir dann wissen, was eine DB ist, kommen wir zu der Frage, wie man aus einer Aufgabenstellung die passenden Datenstrukturen entwickelt. Dieser Teil ist für alle, die auch für den Entwurf der Datenstrukturen verantwortlich sind, besonders wichtig, weil man sich sonst viel Ärger einhandeln kann. Wer lediglich mit schon vorhanden Datenstrukturen arbeiten muß, kann diesen Teil überspringen, obwohl er eigentlich sehr interessant ist ;-).
Als DBMS benutzen wir MySQL, das als Abfragesprache SQL benutzt. SQL ist eine nach bestimmten Normen festgelegte Sprache, die von
der Mehrheit der Relationalen DBS
benutzt wird; dazu zählen unter anderem: PostgreSQL, IBM DB2, Oracle, Adabas-D, MySQL,
mSQL, Informix und Gupta.
Im Prinzip ist SQL standardisiert, allerdings unterstützen nicht alle Hersteller den kompletten Standard und jeder hat seine eigenen Erweiterungen. Soweit nicht explizit angegeben, sollten die in dieser Anleitung benutzten Befehle dem Standard entsprechen und auch mit anderen Datenbanken verwendet werden können.
All diejenigen, die mit Datenbanken arbeiten wollen, müssen diesen Teil vollständig verstanden haben - andernfalls kommen sie später mit Sicherheit stark ins Schleudern.
Du mußt übrigens nicht jeden Befehl auswendig kennen; viel wichtiger ist, daß Du weißt, wo Du nachschlagen kannst.
Seit einiger Zeit gibt es PHP in der Version 4. Bis alle umgestellt haben, wird jedoch sicherlich noch einige Zeit lang PHP3 verbreitet sein. Im Prinzip sollten alle PHP3-Scripte auch unter PHP4 laufen. Soweit nicht anders angegeben, sind die Befehle, die in dieser Anleitung verwendet werden, sowohl unter PHP3 als auch unter PHP4 verwendbar. Wenn ein Befehl erst in PHP4 hinzu gekommen ist, wird dies explizit erwähnt (sofern ich es nicht vergessen habe ;-)).
Dieser Teil ist unbedingt notwendig, um in PHP programmieren zu können und sollte deshalb verstanden worden sein, was wie oben nicht heißen soll, daß Du jeden Befehl auswendig kennen mußt, sondern nur, daß Du im Zweifelsfall weißt, wo Du nachschlagen mußt.
Ein paar der Beispiele sind auch unter http://reeg.net/ in Aktion zu sehen (wenn ich es endlich mal schaffe, sie zu programmieren :-( ).
Um die Übersichtlichkeit zu erhöhen, werden einige Sachen hervorgehoben. Die Tabelle 1.6 zeigt, auf welche Weise was hervorgehoben wird.
In den Beispielen wird der PHP-Code, HTML-Text, sowie teilweise der SQL-Code syntaktisch hervorgehoben. Laß dich davon nicht irritieren, sondern verstehe es einfach als Lesehilfe. Wie die jeweiligen Sprachelemente hervorgehoben werden, sollte eigentlich relativ einfach zu erkennen sein.
|
Wenn du Anregungen zu dem Tutorial hast, kannst du gerne eine Mail an
dsp-autor@ml.junetz.de schreiben; die wird dann automatisch an alle
weitergeleitet und irgendjemand im Autorenteam wird dann schon antworten.
Nun folgen ein paar Worte von den einzelnen Autoren (vielleicht werden es irgendwann ja auch noch mehr ;-) ).
Da ich bis jetzt leider noch nichts vergleichbares im Internet gefunden habe, werde ich wohl auch noch die nächste Zeit damit beschäftigt sein und weiterschreiben. Auch die Mails, die ich gelegentlich bekomme, zeigen mir immer wieder, daß es einen gewissen Sinn hat, was ich da mache.