Danke, sowas ist für mich genau das Richtige.![]()
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
Nehmt euch z.B. phpMyAdmin und gebt diese Zeile ein, und schon ist die Tabelle `tabellenname`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;
erzeugt.
Wie fügen wir Daten ein ?
Dafür gibt es den "INSERT INTO" - Befehl.
Wir wollen was beliebiges einfügen:
Das wars schon. MySQL gibt diesem Datensatz automatisch die id 1, das Datum wird auf das aktuelle gesetztCode:INSERT INTO `tabellenname` SET `datum`=NOW(), `zahl1`='15', `name`='Baltazar', `information`='Dies ist nur ein kleines Beispiel';
(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
Das * steht für alle Tabellenfelder. Will man nur bestimmte, kann man sie auch aufzählen und durch Kommatas trennen.Code:SELECT * FROM `tabellenname` WHERE `id`=1;
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"
wir verbindenPHP-Code:$host='localhost';
$user='root';
$password='';
Im Erfolgsfall sehen wir nichtsPHP-Code:$res=mysql_connect($host,$user,$password) or die('Das war wohl nix ! Mysql meldet:<br>'.mysql_error());
- bei Fehler stirbt das Script mit der Fehlermeldung.
Jetzt wählen wir unsere Datenbank aus (hier heisst sie TP)
Prima. Wir fügen mal in einer Schleife 10 Datensätze ein, damit wir was zum spielen haben:PHP-Code:$res=mysql_select_db('TP') or die('War wieder nix - die Datenbank gibts wohl nicht');
Und schon haben wir die Datenbank gefüllt.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");
}
Jetzt lesen wir alles wieder aus:
So einfach kann die Kommunikation zwischen PHP und MySQL sein.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>";
}
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![]()
Geändert von steffenk (24.07.2005 um 23:27 Uhr)
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Danke, sowas ist für mich genau das Richtige.![]()
Du kommst ja vielleicht auf Ideen, Steffen. Da kann rein gar nichts mithalten, solange keiner "PHP und MySQL unter 5 Minuten" vorstellt.![]()
Gutes Tutorial, zumindest in Verbindung mit weiterer Kurzlektüre zum Thema. Hat mir den Einstieg in dieses Thema sehr erleichtert, danke.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)