PHP Basics (1)

Dieses/dieser Blog besteht aus sieben Teilen.

Achtung! Erforderlich:

  1. Geringe Grundkenntnisse in Microsoft Access und Microsoft Excel
  2. Die Applikation Microsoft Access
  3. Die Applikation Microsoft Excel
  4. Ein PHP- und MySQL-fähiger Webserver

Von Vorteil wären:

  1. Geringe Grundkenntnisse in HTML
  2. Geringe Grundkenntnisse in PHP
  3. Geringe Grundkenntnisse in (My)SQL

Hallo User!

Dieses Netzlogbuch (der/das Blog) versucht in kleinen Einzelschritten aufzuzeigen, wie man eine lokale Microsoft Access-Datenbank ins Internet überführen kann. Der Referent ist 1968 geboren, wohnt im Regierungsbezirk Köln, und ist blutiger Programmieranfänger. Dank gilt dem unerschrockenen User Yagger, der das Projekt von Beginn an morgens, mittags und (spät) abends begleitet hat.

Nun möchte ich meine Beispieldatenbank vorstellen. Sie ist einfach und unkomplex und sollte als Objekt der Begierde gut taugen. Dateiname: Buecher_gelesen.mdb. mdb dürfte hier für „Microsoft Database“ stehen. Für alle, die das noch nicht wissen: Eine Access-Datenbank kann Tabellen, Abfragen, Formulare, Berichte, Seiten, Makros, Module und anderes enthalten. Hier wollen wir uns erst die zugrunde liegende Tabelle anschauen. Eine Tabelle besteht in Microsoft Access u.a. aus Feldern. Im Bücher-Beispiel z.B. aus den Feldern „Autor“, „Titel“, „wann geschrieben“ etc. Die Struktur einer Tabelle in Access soll im Folgenden anhand eines Bildes vermittelt werden:

Bild 1-1

Bitte achte auf die Hinweispfeile und die Hinweistexte! Der obere Pfeil deutet auf die allererste/alleroberste Zeile der Tabelle. Diese Zeile repräsentiert die Felder der Datenbank. Vollständig lauten sie (und es geht ja um Bücher):

Autor Nachname
Autor Vorname
Titel
Untertitel
Ort
Verlag
Jahr
Kategorie
Art
Übersetzung von – in
wann gelesen etwa
Kommentar

Da gibt’s wohl nichts zur Bedeutung zu erklären, erschließt sich von selbst. – Welche Informationen bietet das Schaubild noch? Da wäre der Pfeil unten. Die Zahl, auf die er zeigt, ist die Anzahl der Datensätze. Was ist ein Datensatz? Ganz einfach: In diesem Beispiel eines der gelesenen Bücher. 196 Bücher enthält die Datenbank insgesamt.

Wir wissen nun, dass eine Datenbank Felder und Datensätze enthält. Jeder Datensatz hat in diesem Beispiel zwölf Details, die Felder.

Welche Informationen bietet das Schaubild noch? Freilich die Daten selbst, wenngleich hier nicht alle zu sehen sind. Wir sehen z.B. das Buch „Biedermann und die Brandstifter – Ein Lehrstück ohne Lehre“ und viele andere Bücher. Das Schaubild zeigt natürlich nicht alle Angaben, dazu ist die gewählte Ansicht zu groß.

Als nächstes wollen wir uns die Struktur der Tabelle anschauen. Es geht hier nicht um Access, das Bestehen der Access-Datenbank wird vorausgesetzt; es geht darum, sie ins Internet zu bringen. Dennoch verweilen wir ein wenig bei Access und werfen nun einen Blick auf die Struktur der Tabelle. Wähle dazu MENÜ / ANSICHT / ENTWURFSANSICHT. Du siehst etwas wie das hier:

Bild 1-2

Der erste Pfeil zeigt auf die Feldnamen, der zweite auf den Felddatentyp. Das heißt: Ein Feld ist z.B. das Jahr, in dem das Buch geschrieben wurde, oder der Vorname des Autoren. Das kann man sich schon denken. Wichtiger ist der Felddatentyp: Eine Datenbank kann nämlich verschiedene Arten von Feldern haben. Die Frage, welcher Felddatentyp, ist dahingehend: Was soll in das Feld hinein? Text? Eine Zahl? Ein Datum? Ein Bild? Und so weiter. In unserem Fall sind alle Felder vom Typ Text.

Die Access-Datenbank ins Internet überführen (vorläufig)

Wenn du Microsoft Access hast, dann hast du wahrscheinlich auch Microsoft Excel, weil die Office-Pakete eher Excel haben, als Access. Im nächsten Schritt exportieren wir die Datenbank nach Excel hinein. Sie ist dann später aus phpMyAdmin (was ist das denn? Keine Sorge, kommt noch) importierbar.

Schließe die Tabelle (DATEI / SCHLIESSEN). Du siehst nun das hier:

Bild 1-3

Nun exportiere die Tabelle nach Excel, dazu mache einen Rechtsklick auf das Icon, wähle „Exportieren…“, es öffnet sich der Datei-Dialog: „Exportieren von Tabelle ‚BUECHER_GEL‘ nach…“

Bild 1-4

Als Name für die Excel-Datei ist der Name der Access-Tabelle vorgegeben, was du so lassen oder ändern kannst. Darunter solltest du „Excel“ und deine Excel-Version wählen. Achtung! Ich kenne mich mit Office 2010 noch nicht völlig aus, jedoch sind die Klicks wohl sehr ähnlich oder gleich. Klicke nun die Schaltfläche „Exportieren“ unten rechts. Leider erscheint jetzt keine Bestätigungsmeldung, was uns ärgern könnte, aber nicht sollte. Suche nun die soeben entstandene Excel-Datei mit dem Windows-Explorer (das Ding, mit dem man die Dateien auf der Festplatte sehen kann) und öffne sie zur Kontrolle. Du siehst (hoffentlich): Die Daten der Tabelle sind in Excel hineingeflossen.

Bild 1-5

Schließe die Excel-Datei wieder! (wichtig)

— — — — — — —

Nun bewegen wir uns thematisch ganz woanders hin. Du willst deine Access-Datenbank ins Internet bringen. Folglich brauchst du Platz im Internet, einen Raum für deine Datenbank, einen Webspace. Der ist nicht umsonst. Suche dir einen Anbieter/Hoster/Provider! Es liegt mir fern, Werbung zu machen und ich kann nicht für viele User sprechen. Mit Greatnet und Alfahosting habe ich persönlich recht gute Erfahrungen gemacht. Aber die Wahl bleibt dir überlassen. Achte auf den Preis, achte auf eine günstige Störungs-Hotline, achte darauf, dass du keinen für dich unzumutbaren Vertrag eingehst. Eine einstellige Eurosumme pro Monat sollte nicht überschritten werden. Achte aber – vor allem – darauf, dass dein Webspace folgende Eigenschaften hat.

Er soll können:

HTML (Hypertext Markup Language)
PHP (Hytertext Pre-Processor) (ja, die Abkürzung stimmt schon)
MySQL (My Structured Query Language)

Diese Voraussetzungen sind zwingend für das, was wir wollen.

Bis dein Paket freigeschaltet ist, wird es einen oder mehrere Tage dauern. Es wird also heute Nacht nichts mehr. 🙂 Der Anbieter sendet dir Zugangsdaten für dein Paket. Bewahre sie gut auf und gib sie nicht an Dritte weiter.

Begib dich nun mit diesen Zugangsdaten mittels deines Browsers (z.B. Mozilla Firefox, Microsoft Internet Explorer, Opera oder Google Chrome) zu deinem neu angemieteten Webspace. Z.B. http://www.NAMEDESANBIETERS.de Hier findest du eine Login-Schaltfläche. Logge dich unter Heranziehung deiner Zugangsdaten ein.

Siehe Bild 1-6.

Bild 1-6

Wahrscheinlich musst du jetzt mehrere Schritte gehen, um zu phpMyAdmin zu gelangen; das ist von Anbieter zu Anbieter unterschiedlich. Auch ist wahrscheinlich ein weiterer Login nötig (Zugangsdaten dazu hast du auch vom Anbieter erhalten). Klick dich durch! Ach ja, was ist phpMyAdmin? phpMyAdmin ist eine komfortable Benutzeroberfläche, mit der du eine Datenbank anlegen, ändern, mit Tabellen ausstatten usw. kannst. Auch kannst du Tabellen importieren, ändern, löschen und vieles andere mehr. Das Ganze sieht ungefähr so aus: Bild 1-7

Bild 1-7

Es ist nun die Frage, ob du hier im phpMyAdmin eine neue (erste) Datenbank anlegst, oder im sogenannten MySQL-Bereich. Beim meinem Anbieter war es letzteres. Jedenfalls musst du eine Schaltfläche „Neue Datenbank anlegen“ klicken. Du solltest ein wenig ausprobieren. Ist die Datenbank angelegt, erhältst du vom System wieder einige Informationen. Es sind diese:

  1. Name der Datenbank (ungleich Name deiner Access-Datei oder Name deiner Excel-Datei)
  2. Name des Benutzers (ungleich deinem realen Namen, Internetpseudonym, Nickname)
  3. Passwort (!)

In der Folge wollen wir nun unsere erstellte Excel-Tabelle importieren. Dazu klickst du die Datenbank an und dann auf die Schaltfläche „importieren“. Siehe Bild 1-8.

Bild 1-8

Hier sind drei Dinge wichtig: Dass du die richtige Excel-Datei auswählst (in die wir exportiert haben) (erster Pfeil), dass du die richtige Excel-Version wählst (zweiter Pfeil) und dass du das Häkchen setzt bei:

„Die erste Zeile der Datei enthält die Spaltennamen“

Siehe Bild 1-9.

Bild 1-9

Was klicken wir dann? Genau: OK. Wenn das Schicksal dir hold ist, siehst du nun etwas wie das Folgende:

Bild 1-10

Dann wollen wir uns mal anschauen, ob auch alles geklappt hat. Du kannst dir durch Klicken auf „Struktur“ die Struktur deiner (nun schon internetfähigen) Datenbank anschauen. Auch „Anzeigen“ kannst du klicken. Die Tabelle muss strukturell und inhaltlich genauso beschaffen sein, wie das Original in Microsoft Access. Ist dies der Fall, sollte alles in Ordnung sein. Wenn nicht, kommentiere bitte diesen Blog und diskutiere mit mir über das Problem.

Bild 1-11

Es ist nun wohl an der Zeit, sich mit dem Unter-Thema unserer Anleitung „SQL“ bzw. „MySQL“ ein wenig zu beschäftigen.

Die Abkürzung steht für „Structured Query Language“, was soviel heißt wie „Strukturierte Abfrage-Sprache“. Man könnte frei formulieren: SQL kann für uns aus unserer Datenbank etwas herausholen, wir müssen nicht selber suchen. SQL kann auch für uns die Datenbank sortieren, das müssen wir auch nicht selber machen. „Abfrage“ heißt salopp: „Hallo SQL! Ich möchte heute mal folgendes: alle Bücher, deren Autoren mit B anfangen, aber nur die, die vor 1950 geschrieben wurden und das Ganze sortiert nach Verlag.“ SQL geht hin und besorgt das, das heißt es fragt die Datenbank so ab.

Voraussetzung für diese Bequemlichkeit unsererseits ist, dass der SQL-Befehl richtig formuliert wurde. Wichtig: Wann immer wir später mit der Datenbank im Internet arbeiten, ist MySQL involviert. Wir werden lernen, wie:

in HTML eine kleine Website aussieht
mit PHP der HTML-Code spezifisch generiert wird
mit PHP SQL-Befehle individuell gebaut werden und die Datenbank abfragen
das Ergebnis wieder in HTML ausgegeben wird.

Uff!

Betrachten wir zunächst einen einfachen SQL-Befehl: Du sagst:
SELECT * FROM `BUECHER_GEL`;
Heißt: Nimm alle Felder der Tabelle BUECHER_GEL und zeige sie an. Du kannst in phpMyAdmin (der Benutzeroberfläche bei deinem Anbieter) auf SQL klicken, den Befehl eingeben und dann OK klicken; er wird ausgeführt und du siehst die ganze Tabelle.
Oder du sagst:
SELECT * FROM `BUECHER_GEL` WHERE Jahr > 1950;
Heißt: Nimm alle Felder der Tabelle BUECHER_GEL, aber nur die Datensätze, bei denen das Jahr größer ist, als 1950, sprich: die Bücher, die nach 1950 geschrieben wurden. Störe dich nicht an dem „LIMIT 0 , 30“; das macht phpMyAdmin selber; das hat mit der Ergebnisanzeige zu tun.
Oder du sagst:
SELECT * FROM `BUECHER_GEL` WHERE Jahr > 1950 AND AutorNachname LIKE ‚H%‘;
Heißt: Nimm alle Felder der Tabelle BUECHER_GEL, aber nur die Datensätze, bei denen das Jahr größer ist, als 1950, sprich: die Bücher, die nach 1950 geschrieben wurden und bei denen der Nachname des Autoren mit H beginnt.

Ich kann hier keinen Crashkurs und schon gar keinen Kurs in (My)SQL geben; das würde meine Fähigkeiten weit übersteigen, aber du kannst selbstverständlich alles zunächst googeln, was du nicht verstehst. Auch kannst du, wie gesagt, diesen Blog kommentieren und mit anderen und mir Probleme diskutieren.

Eine wichtige Sache zu den Feldern. Es hat sich der Fehlerteufel insofern eingeschlichen, als einige Felder, genauer gesagt: Feldnamen, Leerzeichen haben. Dies ist äußerst unwünschenswert, da (My)SQL große Probleme hat, diese Feldnamen richtig zu verarbeiten. Deswegen: Entferne jetzt die Leerzeichen aus den Feldnamen! Achte auch darauf, dass kein Minus-Zeichen darin ist (-). Das geht so:

Klicke in phpMyAdmin auf Struktur.

Bild 1-12

Du siehst neben jedem Feld einen gelben Stift. Wenn du ihn anklickst, wird das Feld mit all seinen Eigenschaften angezeigt. Entferne aus dem Namen des Feldes alle Leerzeichen und Minuszeichen (-). Drücke jeweils „Speichern“ unten rechts, wenn du einen Feldnamen gesäubert hast.

Oben habe ich bereits von Felddatentypen gesprochen. Ich möchte einmal wiederholen: Bei den Felddatentypen handelt es sich um die Art/die Kategorie der Inhalte der Felder. Es ist beispielsweise sinnlos, dem Feld „Jahr“ den Felddatentypen „Text“ zuzuweisen, denn so kann später nicht verglichen werden, wann (in unserem Bürcherdatenbankbeispiel) das Buch geschrieben wurde. Darum wollen wir jetzt darauf achten, dass das Feld „Jahr“ den Felddatentyp Integer (ganze Zahl) bekommt. Schauen wir uns nochmals die Struktur der Tabelle an:

Bild 1-13

Alle anderen Felder sind vom Typ varchar, was für Text steht. Genauer gesagt: „Zeichenfolge (character) mit variabler Länge“. Wie steht es mit dem Feld „wanngelesenetwa“? Bietet sich hier nicht auch an, es auf „Integer“ zu setzen? Jein. Man könnte es machen, aber es enthält in machen Datensätzen mehrere Angaben; also lassen wir es bei varchar (Text).

Die Datenbank im Internet auftreten lassen

Navigiere nun bitte zum nächsten Eintrag von streethawk68: Wie man eine Access-Datenbank ins Internet bringt (2)

Advertisements

Über streethawk68

43 years old IT-Fan
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten zu PHP Basics (1)

  1. Leidensgenosse schreibt:

    Der Titel ist irreführend, denn diese Anleitung beschreibt nicht, wie man eine ganze „Access-Datenbank ins Internet“ bringt, sondern A) lediglich, wie man eine einzige Tabelle bedienbar ins Internet stellt, und B) nicht als Access-Objekt, sondern in Form einer Kopie eines Access-Objekts in einem Access-fremden Format.

    Ich glaube nicht, daß es Datenbanken gibt, die aus nur einer einzigen Tabelle bestehen, sowas würde man in der Tat mit Excel und nicht mit einer Datenbank-Software machen. Und wie schon richtig geschrieben, besteht eine Access-Datenbank außer Tabellen noch aus anderen Objekten wie Abfragen, Formularen, Berichten, Makros und Modulen.
    Das hier z.B. ist eine Anleitung, wie man eine „Access-Datenbank ins Internet“ bringt:
    http://office.microsoft.com/de-de/access-help/erstellen-einer-im-web-freizugebenden-access-datenbank-HA010356866.aspx

    lg

    • streethawk68 schreibt:

      Hallo Leidensgenosse,
      ich denke, nur weil eine Access-Datenbank aus lediglich einer Tabelle besteht, hört sie deshalb nicht auf, Datenbank zu sein. Es ist eben ein Spezialfall. Ein Quadrat hört ja auch nicht auf, Rechteck zu sein, nur weil es ein Quadrat ist, nicht wahr?

  2. Pingback: Wie man eine Access-Datenbank ins Internet bringt (7) | streethawk68

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s