Geschrieben von forgottenmods am 23.05.2005, 06:21

Ich hoffe man kann das Tutorial einigermaßen verstehen, es ist mein erstes dieser Art und beschreibt lediglich die ersten Grundlagen. Man sollte allerdings ein paar Kenntnisse in PHP mitbringen.
-------------------------------------------------------------------------

MySQL ist eine Datenbank wie zum Beispiel Acces nur auf SQL Basis. Auf Webservern findet sich meist MySQL da die benötigte Software Freeware ist.

Wir arbeiten nicht direkt mit der Datenbank, sondern mit den in ihr enthaltenen Tabellen. Diese Können wir erstellen, auslesen, editieren und löschen. Genug Theorie, los gehts...

Code:

mysql_connect(\"localhost\",\"benutzername\",\"passwort\") or die
(\"Keine Verbindung zur Datenbank möglich !\");
mysql_select_db(\"Datenbankname\") or die (\"Die Datenbank existiert nicht !\");

Nun erkläre ich Zeile für Zeile:

1. Zeile: Mit dem Befehl mysql_connect(); stellt man eine Verbindung zu MySQL her. Der Befehl benötigt den Servernamen (meistens localhost), den Benutzernamen und das Passwort. Diese Daten werden einem von seinem Webspaceanbieter mitgeteilt.

2. Zeile: or die (?Keine Verbindung zur Datenbank möglich !\"); gehört noch zum dem connect Befehl und sorgt dafür dass eine Fehlermeldung ausgegebn wird wenn die Verbindung scheitert.

3. Zeile: mysql_select_db(); verbindet sich zu der angegebenen Datenbank. Der or die (); Befehl sorgt wieder für die Fehlermeldung falls die Datenbank nicht existiert.

Wir haben uns nun also zu unserer Datenbank verbunden, als nächstes brauchen wir Tabellen in der Datenbank die wir mit Daten füllen können.

Code:

$create = \"CREATE TABLE test (
id int(5) unsigned NOT NULL auto_increment,
name char(30) NOT NULL default\'\',
PRIMARY KEY (id)
) TYPE=MyISAM AUTO_INCREMENT=1\";

$test=mysql_query($create);

Nun wieder die Erklärung:

1. Zeile: Wir belegen die Variable $create mit dem SQL String den wir in Zeile 7 ausführen. Der SQL String enthält die SQL Befehle zum erstellen einer Tabelle innerhalb einer Datenbank. CREATE TABLE test () TYPE=MyISAM erstellt eine Tabelle mit dem Name test.

2. Zeile: id int(5) unsigned NOT NULL auto_increment erstellt eine Zelle mit dem Namen id. Die Daten in dieser Zelle müssen später beim füllen vom Typ Integer (Ganzzahlen) sein und dürfen maxmial 5 Stellen haben. Unsigned erweitert dern Wertebereich indem die negativen Zahlen wegfallen. NOT NULL bedeutet dass der Wert in dieser Zelle nie null sein darf und mit auto_increment bewirkt man dass beim füllen der Tabelle automatisch dieser Wert um 1 erweiter wird sodass wir eine durchgehende Nummerierung der Werte haben.

3. Zeile: name char(30) NOT NULL default erstellt eine Zelle mit dem Namen name in den ?Characters? (Schriftzeichen) mit einer maximalen Länge von 30 Zeichen gefüllt werden dürfen. NOT NULL heißt auch hier wieder dass dieser Wert nie 0 ist auch wenn keine Eingabe gemacht wird.

4. Zeile: PRIMARY KEY (id) setzt den Primär Schlüssel auf die Zelle id

7. Zeile: $test=mysql_query($create); führt mit dem Befehl mysql_query den SQL String der Variablen $create in der Datenbank aus, so dass erst mit diesem Befehl die Zellen entstehen.

Code:

$abfrage = \"SELECT name,id FROM DB\";
$ergebniss = mysql_query($abfrage);
while($db = mysql_fetch_object($ergebniss))
{
echo $db->name;
}

Nun fragen wir die eben erstellte Datenbank ab:

1. Zeile: SELECT name,id FROM DB wählt alle Werte aus den Zellen name und id der Datenbank DB aus. Wollt ihr die Werte aus allen Tabellen ausgeben ersetzt name,id durch ein *.

2. Zeile: Mit mysql_query(); führen wir den SQL Befehl in der Datenbank aus.

3. Zeile: Jetzt speichern wir den Datenstring aus der Tabelle mit dem Befehl mysql_fetch_object(); in der Variablen $db und geben mit der while-Schleife Zelle für Zelle wieder.

5. In der while-Schleife wird jetzt der Wert von name ausgegeben. Man kann die Werte entweder mit $db->name oder mit $db[name] ausgeben.

Damit man das oben Erklärte besser versteht hier mal ein Beispiel einer MySQL DB

ID name mail
1 user1 user1@mail.com
2 user2 user2@mail.com

Wenn wir nun mit einer while-Schleife den Namen abfragen, wie im Beispiel oben, gibt uns das Skript

user1user2

aus. Das Skript gibt also hintereinander die angeforderten Daten der Tabelle aus. Jetzt kennen wir die Grundlagen und den Aufbau einer MySQL Abfrage. Wenn wir nun Daten editieren oder löschen möchten müssen wir nur den SQL Befehl ändern und den Befehl wieder in der Datenbank per Query-Befehl ausführen.

Code:

$eintragen = \"INSERT INTO $dbname (name, mail) VALUES (\'$name\', \'$mail\')\";

INSERT INTO fügt eine komplett neuen Datensatz zu einer Tabelle hinzu. Unsere Zelle id so wie wir sie eben erstellt haben zählt sich selbst bei einem neuen Datensatz fortlaufend durch.

Code:

$aendern = \"UPDATE $dbname Set name = \'Kedo\' WHERE id = \'2\'\";

UPDATE ändert Daten in der Tabelle. Das WHERE gibt an wo die Daten geändert werden sollen. In unserem Beispiel wird der name in Kedo geändert wo die id gleich 2 ist. WHERE kann man auch in der Abfrage benutzen.

Code:

$loeschen = \"DELETE FROM $dbname WHERE id = \'2\'\";

DELETE FROM löscht den komplette Eintrag in der Tabelle in der id gleich 2 ist.

Zusammenfassung der SQL Befehle:

CREATE TABLE $dbname (); = erstellt eine Tabelle namens $dbname

SELECT * FROM $dbname = wählt alle Werte aus der Tabelle $dbname

SELECT name FROM $dbname WHERE id = \'1\' = wählt den Wert der Zelle name in dessen Zeile id gleich 1 ist

SELEECT * FROM $dbname ORDER BY id = wählt alle Werte der Tabelle $dbname und sortiert diese aufsteigend nach der id

SELECT * FROM $dbname ORDER BY id DESC = wählt alle Werte der Tabelle $dbname und sortiert diese absteigend nach der id

SELECT *FROM $dbname LIMIT 5,2 = wählt 2 Datensätze der Tabelle $dbname ab dem 5. aus

SELECT * FROM $dbname ORDER BY id DESC LIMIT 5 = zuerst werden die Werte nach der id sortiert und in absteigende Reihenfolge gebracht, duchr LIMIT 5 werden nur 5 Datensätze abgefragt.

INSERT INTO $dbname (name) VALUES (\'$name\') = erstellt einen neuen Eintrag in der Tabelle $dbname und setzt name gleich dem Wert der Variablen $name

UPDATE $dbname SET name = \'Kedo\' WHERE id = ?2? = erneuert oder ergänzt den Wert von name durch Kedo in der Zeile in der id gleich 2 ist

DELETE FROM $dbname WHERE id = \'2\' = löscht den komplette Datensatz bei dem id gleich 2 ist

Denkt immer daran dass ihr die SQL Befehle mit mysql_query(); in der Datenbank ausführt !

Bewertung Anzahl
6
93,3 %
14 Bewertungen
5
6,7 %
1 Bewertungen