PHP und MySQL in 5 Minuten
Ein Blitztutorial
Wir wollen mit PHP auf eine Datenbank zugreifen und Daten in eine Tabelle schreiben und wieder auslesen.
Dafür wollen wir uns die rudimentären Grundlagen anschauen.
MySQL - die Datenbank
Die Datenbank besteht aus Tabellen, diese aus Feldern und in diesen Feldern sind die Daten.
Wenn man weiss, welche Daten man in die Felder packen will, dann kann man anhand des Typs des Feld die Art der Daten festlegen.
Für den Anfang brauchen wir nur
Zahlen (INT)
kleine Zeichenketten (VARCHAR(255))
grössere Texte (TEXT)
Datum und Uhrzeit (DATETIME)
VARCHAR hat eine Begrenzung von 255 Zeichen.
Wenn man Datensätze in eine Tabelle einfügt, möchte man später auf genau diesen Datensatz zugreifen.
Dazu benötigt man einen Schlüssel(KEY), der eindeutig ist. MySQL hat hierfür einen Autozähler, der sich selbstständig einträgt und somit einen KEY für den
Datensatz darstellt. Das Feld wird meist mit dem Namen `id` benannt und der Feldtyp ist
`id` int(11) unsigned not null AUTO_INCREMENT PRIMARY KEY
Das bedeutet eine Zahl mit 11 Bytes Speicher (reicht für sehr grosse Zahlen) ohne Vorzeichen (unsigned), nicht leer (not null), Autozähler (AUTO_INCREMENT) und primärer Schlüssel (PRIMARY KEY).
Die Scriptsprache von MySQL nennt sich SQL und ist dem englischen sehr verwandt

Um eine Tabelle zu erzeugen, lautet der Befehl
Code:
CREATE TABLE `tabellenname` (
`id` int(11) unsigned not null AUTO_INCREMENT PRIMARY KEY,
`datum` DATETIME,
`zahl1` INT,
`name` VARCHAR(255),
`information` TEXT )TYPE=MYISAM;
Nehmt euch z.B. phpMyAdmin und gebt diese Zeile ein, und schon ist die Tabelle `tabellenname`
erzeugt.
Wie fügen wir Daten ein ?
Dafür gibt es den "INSERT INTO" - Befehl.
Wir wollen was beliebiges einfügen:
Code:
INSERT INTO `tabellenname`
SET
`datum`=NOW(),
`zahl1`='15',
`name`='Baltazar',
`information`='Dies ist nur ein kleines Beispiel';
Das wars schon. MySQL gibt diesem Datensatz automatisch die id 1, das Datum wird auf das aktuelle gesetzt
(Eine MySQL-Funktion Now() liefert das aktuelle Datum mit Uhrzeit).
Viele wundern sich bestimmt über diese Hochzeichen.
Für Namen von Tabellen und Feldern benutzt man die schrägen Hochticks (Backticks) `
und für Zeichenketten (Strings) die einfachen Anführungzeichen (Quotes) '
Die Backticks kann man auch weglassen, wenn es sich um keine reservierten oder mit Sonderzeichen belegten Namen handelt -
mit ist sicherer

Die Quotes bei Zahlen kann man auch weglassen.
Wollen wir diesen Datensatz wieder auslesen, so wählen (SELECT) wir ihn aus
Code:
SELECT *
FROM `tabellenname`
WHERE `id`=1;
Das * steht für alle Tabellenfelder. Will man nur bestimmte, kann man sie auch aufzählen und durch Kommatas trennen.
Kommen wir zum PHP-Teil.
Alles was wir brauchen ist bereits in PHP eingebaut, wir können es direkt nutzen.
Um zur Datenbank zu verbinden brauchen wir die "Zugangsdaten"
PHP-Code:
$host='localhost';
$user='root';
$password='';
wir verbinden
PHP-Code:
$res=mysql_connect($host,$user,$password) or die('Das war wohl nix ! Mysql meldet:<br>'.mysql_error());
Im Erfolgsfall sehen wir nichts

- bei Fehler stirbt das Script mit der Fehlermeldung.
Jetzt wählen wir unsere Datenbank aus (hier heisst sie TP)
PHP-Code:
$res=mysql_select_db('TP') or die('War wieder nix - die Datenbank gibts wohl nicht');
Prima. Wir fügen mal in einer Schleife 10 Datensätze ein, damit wir was zum spielen haben:
PHP-Code:
for($i=1;$i<11;$i++)
{
//völlig willkürliche Daten erzeugen
$zahl=$i*35;
$name='Igor der ' . $i . '. Herrscher';
$info='Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero et accumsan et iusto';
//und jetzt einfügen
$sql="INSERT INTO `tabellenname` SET `datum`=NOW(),`zahl1`='$zahl',`name`='$name',`information`='$info';";
$res=mysql_query($sql) or die("Halt - da stimmt was nicht !<br>".mysql_error()."<br>$sql");
}
Und schon haben wir die Datenbank gefüllt.
Jetzt lesen wir alles wieder aus:
PHP-Code:
$sql="SELECT * FROM `tabellenname`";
$res=mysql_query($sql) or die("Das gibts doch nicht - immer noch was falsch ? !<br>".mysql_error()."<br>$sql");
//ich will wissen, wieviele Datensätze MySQL gefunden hat
$num=mysql_num_rows($res); //in $num müsste jetzt 10 stehen
echo "Ah, ich habe $num Datensätze gefunden<br>";
//Ok, ich will sie alle sehen
//Wir bauen uns eine Ausleseschleife
While($datensatz=mysql_fetch_array($res))
{
//in $datensatz steht jeweils ein kompletter Datensatz als Array
//wir lesen aus:
echo "<p>";
echo "Datensatz " . $datensatz['id']."<br>";
echo "Datum: " . $datensatz['datum']."<br>";
echo "Zahl: " . $datensatz['zahl'] . "<br>";
echo "Name: " . $datensatz['name'] . "<br>";
echo "Info: " .$datensatz['information'] . "<br>";
echo "</p>";
}
So einfach kann die Kommunikation zwischen PHP und MySQL sein.
Natürlich ist das längst nicht alles, das ist ja nur der Rudimentär-Teil.
Das soll Euch in erster Linie den Mut geben, an diese Materie heranzugehen.
Viel Spass beim Spielen
