Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Tutorials und FAQ (https://www.gegen-bilderklau.net/board.php?boardid=45)
----- [PHP & MySQL] Datenbank aufsetzen mit phpMyAdmin (https://www.gegen-bilderklau.net/thread.php?threadid=178936)


Geschrieben von brain_surgery am 19.02.2011 um 00:51:

  Datenbank aufsetzen mit phpMyAdmin

Mods: Bitte verschieben!
Vorsicht, große Bilder!

Hallo wiedermal. =)

Ich entschuldige mich gleich wegen dem vielleicht unaussagekräftigen Titel, aber mir fällt bei bestem Willen kein besserer ein.

Heute hab ich euch ein kleines Screenshot-Tutorial gebastelt, das in den Grundzügen erklären soll, wie man mit phpMyAdmin eine Datenbank für die Verwendung auf der eigenen Homepage vorbereiten kann.

Die Vorraussetzung dafür ist natürlich, dass euer Anbieter phpMyAdmin und Datenbanken unterstützt! Wenn ihr euch nicht sicher seid, könnt ihr das meistens auf der Homepage eures Anbieters nachlesen.

Ich habe hier mit bplaced.net gearbeitet, ich denke aber dass es bei anderen Anbietern zumindest ähnlich funktionieren sollte.

Es ist auch praktisch, wenn man zumindest im Ansatz weiß, was eine Datenbank ist und was es damit auf sich hat, aber das setze ich jetzt einmal voraus. ;)

1. Login

Über die Seite eures Anbieters oder (bei bplaced) indem ihr phpmyadmin.eureadresse.bplaced.net eingebt, könnt ihr auf phpMyAdmin zugreifen. Zuerst solltet ihr sicherstellen, dass eine Datenbank erstellt wurde, das ist entweder bereits bei der Anmeldung bei eurem Hoster geschehen, ansonsten kann man das auch auf der Homepage ebenjenes erledigen. Dort findet ihr auch die Login-Daten.

2. Übersicht

(1) Das ist eure Datenbank. Die Zahl in der Klammer zeigt an, wieviele Tabellen die Datenbank beinhaltet. (Bei einer neuen Datenbank sind das logischerweise 0.)
(2) Hier steht der Benutzer, falls ihr später auf das Problem stoßen solltet, dass ihr mit der Datenbank eine Verbindung herstellen wollt, könnt ihr den hier nachlesen.

3. Tabellen hinzufügen
Wir werden jetzt zuerst einmal eine Tabelle erstellen. (Ohne ist die Datenbank schließlich recht nutzlos!)
Das ginge jetzt direkt über SQL-Befehle, aber da es auch ein praktisches Interface gibt (und ich mich bisher noch nicht damit befassen wollte wie es sonst funktioniert), erkläre ich euch einfach den mausklickintensiveren Weg.

Ihr klickt also jetzt auf den Namen eurer Datenbank (1 im vorigen Bild). Es öffnet sich eine Ansicht. Wenn die Datenbank bereits Tabellen enthält, werden diese hier aufgelistet. In jedem Fall aber findet sich die Option zum Erstellen neuer Tabellen.

Um eine neue Tabelle anzulegen, gebt ihr in dem kleinen Formular einen Namen (1) und die Anzahl von Spalten, die sie haben soll (2) ein. Diese Zahl kann aber für den Anfang komplett wilkürlich sein, da man im nächsten Schritt noch problemlos neue Spalten hinzufügen oder überflüssige wegnehmen kann. Beachtet auch, dass keine Umlaute oder Sonderzeichen in den Tabellennamen sein sollten. Das kann später zu Problemen führen. Wenn ihr fertig seid, klickt auf OK (3).


Jetzt müsst ihr die Spalten der Tabelle definieren. Das sind NOCH NICHT die Daten! Zeilen werden später mit der Hand oder durch Skripte eingefügt.
Ich habe hier in diesem Beispiel schon alles ausgefüllt. Diese Tabelle könnte später zum Beispiel die Einträge eines Gästebuches speichern.

Ich habe die Felder, die für gewöhnlich angepasst werden müssen, herausgehoben. Der Rest wird entweder selten oder nie gebraucht. (Zumindest erfahrungsgemäß nicht im Anwendungsgebiet VRH/VPH.)

(1) Das sind die Spaltennamen. Sie sollten eindeutig und wie immer ohne Sonderzeichen oder Umlaute sein. Es ist immer sinnvoll, die erste Spalte "id" zu nennen. IDs sind der einfachste Weg, Datensätze schnell und genau zu identifizieren. Versucht, vorbelegte Spaltennamen zu vermeiden. (Man erkennt das meistens daran, dass bei Abfragen dann aus unerfindlichen Gründen nicht die richtigen Ergebnisse geliefert werden. Ein Beispiel für so einen Namen wäre "alter".)
(2) Das sind die Spaltentypen. Das Dropdown-Menü gibt einem eine gewaltige Auswahl, aber in der Praxis wird kaum einer hier mehr als die Standard-Datentypen brauchen: INT, VARCHAR, TEXT und eventuell FLOAT.

INT bedeutet Integer. Ein Feld von dem Typ Integer kann nur ganze Zahlen speichern. (zB. 1; 29; 58973. Nicht aber 24,5 etc.) Sollte man versuchen, nichtganzzahlige Werte zu speichern, werden diese gerundet. Wenn ihr versucht, Text in ein Feld vom Typ INT einzufüllen, wird dieser nicht gespeichert, bzw in den Zahlenwert 0 umgewandelt.
VARCHAR ist ein ganz normaler String. Kurze Texte (meistens ein Wort) (aber auch längere) können damit gespeichert werden. Vergleichbar mit den Textfeldern eines HTML-Formulars.
TEXT ist genau das, wonach es aussieht. Lange Texte mit Zeilenumbrüchen können hiermit gespeichert werden. Vergleichbar mit Textarea eines HTML-Formulars.
FLOAT ist wie INT, nur dass auch Kommazahlen gespeichert werden können.

Ich habe hier auch "datum" als Integer abspeichern lassen. Anstatt eine echte Datumsangabe zu speichern kann es nämlich praktischer sein, stattdessen den UNIX-Timestamp zu speichern. Das ist die Zahl der Sekunden die seit 1. Januar 1970 00:00 Uhr (Danke, Wikipedia) vergangen sind. PHP kann das ganz leicht wieder in eine Datumsangabe umrechnen. Der Vorteil dabei ist, dass man einfacher mit Timestamps rechnen kann. (Will man eine Minute dazurechnen, addiert man einfach 60.)

(3) Hier wird die Länge, das heißt, wieviel Speicherplatz diese Spalte bieten soll, festgelegt. Bei kurzen Zahlen reicht 11, bei VARCHAR nehme ich meistens sicherheitshalber 255. Bei TEXT bin ich mir ehrlichgesagt nicht sicher, ob man die Angabe nicht ganz auslassen könnte, aber 1000 hat sich bisher gut bewährt.

(4) Wenn man will, kann man hier der Spalte einen Standardwert geben. Dazu das Dropdown auf "Wie Definiert" stellen und einen Wert eintippen. Wird eine neue Zeile hinzugefügt, hat sie dann standardmäßig diesen Wert, kann aber auch jederzeit einen anderen annehmen.

(5) Hier kann man der Spalte noch zusätzliche Eigenschaften geben. Das braucht man hauptsächlich für die "id"-Spalte, der man das Attribut "UNSIGNED" gibt. (Bitte fragt mich nicht wieso, geschadet hat es zumindest noch nie.)

(6) Ein weiteres Feld, das eigentlich hauptsächlich für die "id"-Spalte gebraucht wird. Jede Tabelle braucht eine Spalte, die als Index definiert wurde, und zwar genau eine. Hat sie keinen, funktioniert sie ebenso nicht richtig, als wenn sie zwei oder mehr hätte.

(7) A_I bedeutet Auto Increment. Bei Spalten mit dem Typ Integer bedeutet das, dass automatisch jeder neue Eintrag eine eigene, aufsteigende Zahl bekommt. (Eintrag 1 bekommt 1, Eintrag 2 bekommt 2, usw.) Das ist wieder besonders nützlich für unsere "id"-Spalte.

(8) Hier kann man noch Kommentare einfügen, wenn man sich zu der Spalte etwas notieren möchte. Das Kommentar hat keinen technischen Effekt auf die Tabelle und dient nur zu eurem Komfort. Man kann die Kommentare später in der Übersicht der Tabelle einsehen und sie scheinen auch nirgends sonst auf.

(9) Solltet ihr während dem Eintragen noch mehr Spalten brauchen, kann man hier beliebig viele auf einmal hinzufügen. Einfach die Zahl eintragen und auf OK klicken. Was man bisher in die anderen Felder eingetragen hat, geht dabei nicht verloren. Wenn man zu viele Felder hat, kann man sie einfach leer lassen (das heißt nichts verändern), sie werden dann automatisch gelöscht/ignoriert.

(10) Habt ihr alles zu eurer Zufriedenheit ausgefüllt, klickt auf "Speichern". Die Tabelle wird jetzt erstellt.


(1) Links unter dem Datenbanknamen erscheint der Name der neu erstellten Tabelle. Alle Tabellen werden hier angezeigt.
(2) Außerdem erscheint eine Meldung, die euch sagt dass alles glatt gelaufen ist. (Oder eine Fehlermeldung, wenn ihr etwas falsch gemacht habt.)
(3) Die Spalten der Tabelle. Sie können hier editiert oder gelöscht werden.
(4) Natürlich können auch neue Spalten im Nachhinein hinzugefügt werden. Es funktioniert dann genauso wie beim Erstellen.
(5) Hier wird noch einmal angezeigt, welche Spalte wir als Index definiert haben. Wenn hier eine Fehlermeldung ist, dann habt ihr wahrscheinlich vergessen, einen Index zu bestimmen und solltet das dringend nachholen.
(6) Mit dieser Registerkarte könnt ihr die Inhalte der Tabelle anzeigen. Da sie aber noch ganz neu ist, ist sie logischerweise noch leer, weshalb ihr automatisch zurück in die Übersicht umgeleitet werdet, wenn ihr darauf klickt.
(7) Diese Registerkarte zeigt die Übersicht an. Ihr seid momentan hier.
(8) Damit kann man von Hand neue Zeilen/Datensätze einfügen. Das werden wir jetzt auch gleich ausprobieren.

4. Zeilen einfügen
Neben der PHP-Variante kann man auch von Hand Datensätze eintragen. Das kann zum Beispiel für Testzwecke ganz nützlich sein.


(1) Ein Klick auf die Registerkarte "Einfügen" und los gehts!
(2) Hier habe ich nichts eingegeben, weil durch die Einstellungen der Spalte automatisch eine Zahl eingefügt wird.
(3) Die restlichen Felder können wie bei einem Formular ausgefüllt werden.
(4) Hier noch einmal der Timestamp. Ich habe ihn ganz einfach mit einem Generator aus dem Internet ausrechnen lassen. (Google weiß mehr)
(5) Anschließend auf OK klicken und der Datensatz wird gespeichert. Es erscheint dann noch eine Seite auf der eine Erfolgsmeldung (oder Fehlermeldung) ausgegeben wird. Auf dieser muss man nichts mehr machen und kann sich zum Beispiel die gerade erstellte Zeile ansehen, indem man ganz links auf den Tabellennamen klickt.


(1) Registerkarte Anzeigen. Sobald die Tabelle Datensätze enthält öffnet sich diese Registerkarte automatisch, wenn man auf den Tabellennamen klickt.
(2) Die Anzeige der Zeilen, die sich in der Datenbank befinden. Hier kann man die einzelnen Einträge manuell bearbeiten oder löschen.

5. Geschafft!
Damit sind wir auch schon am Ende. Wenn ihr alles so weit geschafft habt, seit ihr schon auf dem besten Weg! Denkt einfach immer dran, dass ihr keine Angst davor haben müsst, ein wenig herumzuprobieren und einfach mal neugierig auf irgendetwas zu klicken, wenn ihr nicht wisst, was es bewirkt. Im Normalfall kann man nicht viel kaputt machen, und selbst wenn, hat man zumindest aus dem Fehler gelernt. ;)

Wie ihr jetzt mit dieser Datenbank arbeiten und sie mit PHP verwenden könnt, erfahrt ihr ausführlich in meinen anderen Tutorials. =)
Falls etwas nicht ausführlich oder verständlich genug erklärt wurde, könnt ihr natürlich jederzeit nachfragen!

Liebe Grüße und bis zum nächsten Mal,
brain <3

Anhang:
Wie bereits erwähnt, gibt es in MySQL einige reservierte Wörter. Die dürfen nicht als Tabellenname oder Spaltenname verwendet werden, sonst gibt es Fehler. Eine vollständige Liste dieser Wörter findet man hier:
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
=)

Extra-Teil
In einer anderen Version des phpMyAdmin sieht das Interface zum Erstellen der Tabelle etwas anders aus. Ich habe euch deswegen einen Screenshot gemacht und erkläre kurz, welches der Felder was bedeutet:

Nummer 1 bis 4 und 8 sind komplett gleich. In Feld Nummer 5 könnt ihr einfach den Standardwert eingeben, ohne "Wie definiert" auswählen zu müssen, wie es ja in der anderen Version der Fall ist. (Feld Nummer 4 im anderen Screenshot.)
Nummer 6 ist statt der Nummer 7 auf dem Screenshot der anderen Version, also das auto_increment Feld. Auswählen, wenn der Wert des Feldes automatisch eine fortlaufende Zahl erhalten soll.
Nummer 7 auf diesem Screenshot sind die Optionen, die auf dem anderen Screenshot unter Nummer 6 in einem Auswahlfeld zu finden sind. Die drei Optionen stehen hier einfach als Radio-Buttons nebeneinander. Wenn ihr den Mauszeiger über das Symbol mit dem Schlüssel haltet, wird euch "PRIMARY" angezeigt. Und genau das ist, was wir für id-Felder brauchen.

Ich hoffe das war jetzt nicht zu knapp erklärt. :) Im Endeffekt lassen sich die Unterschiede zwischen den Versionen ziemlich leicht überbrücken, wenn man ungefähr weiß wonach man sucht.



Geschrieben von TBgirl am 04.03.2011 um 10:32:

Daumen hoch!

supi dupi gemacht fröhlich

Hilft mir schon echt weiter danke dir <3



Geschrieben von brain_surgery am 05.03.2011 um 17:37:

 

Gern geschehen! fröhlich



Geschrieben von Pony-girl am 08.03.2011 um 16:12:

 

wow, das ist wirklich gut beschreiben! danke!



Geschrieben von brain_surgery am 08.03.2011 um 18:06:

 

Bittesehr! =)



Geschrieben von Jasaya am 08.04.2011 um 19:27:

 

hast mir wie immer echt geholfen braini großes Grinsen <3



Geschrieben von brain_surgery am 09.04.2011 um 13:03:

 

Freut mich! Mach ich doch gern Herz



Geschrieben von Awaiakaka am 30.08.2011 um 12:30:

 

huhu wäre super.. aber ich bin bei square7. und da funktioniert das iwie net so unglücklich ich hab net die gleichen fenster wie bei bplaced



Geschrieben von Nanni am 02.09.2011 um 17:03:

 

Ab wo brauchst du denn Hilfe? Mach doch mal einen Screen von der Seite, wo du nicht weißt was du klicken / auswählen musst, vielleicht kann ich dir dann weiterhelfen. (:


Forensoftware: Burning Board, entwickelt von WoltLab GmbH