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 [7] 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 2.2 beschrieben. Etwaige Server-spezifische Besonderheiten müssen dabei natürlich außer acht gelassen werden.
Neue Versionen werden per E-Mail angekündigt, wenn du auch eine E-Mail bekommen willst, kannst du dich auf der Mailingliste eintragen.
Wenn du Anregungen hast, was noch verbessert werden kann, würden wir uns über eine E-Mail an dsp-autor@ml.junetz.de sehr freuen.
Im SQL- und PHP-Teil werden die grundlegenden Befehle vorgestellt. Für eine ausführliche Befehlsübersicht müssen die Original-Anleitungen zu Rate gezogen werden.
Bei PHP [6] sieht die Sache etwas anders aus. Die Anleitung gibt es in verschiedenen Sprachen, auch wenn nicht alle komplett aus dem Englischen übersetzt wurden. Sie eignet sich nur dann zum Erlernen von PHP, wenn man schon vorher programmieren konnte und nur die neue Syntax lernen muß. Sie eignet sich aber auf jeden Fall als gutes Nachschlagewerk. Bei der (englischen) Online-Variante gibt es die Möglichkeit, Kommentare zu den einzelnen Seiten zu hinterlassen, die später auch in die Dokumentation eingebaut werden. Die Kommentare sind häufig sehr wertvoll, besonders wenn die Dokumentation nicht ganz klar formuliert ist.
Eine weitere Informationsquelle sind die FAQs. Die FAQ von MySQL [9] ist noch im Aufbau und deshalb noch nicht so ausführlich; sie enthält jedoch schon einige nützliche Informationen. Die PHP-FAQ [8] 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. [10] oder [11]. 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 [10] betrieben. Die Newsgroups zu PHP finden sich unter ,de.comp.lang.php`. Auch wenn man keine aktuellen Probleme hat, kann es sich lohnen, dort mitzulesen.
Anschließend soll geklärt werden, was eine Datenbank ist, bzw. was mit Begriffen wie DB, DBS oder DBMS gemeint ist und wo die Unterschiede liegen.
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 DBSbenutzt 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.1 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.