Da ich schon länger mal PHP und MySQL lernen wollte und sich zeitlich mal die Gelegenheit ergab etwas zu experimentieren hab ich nach dem durchlesen einiger Tutorials im Internet mir mal so ne Art Miniadressbuch gebastelt.
Evtl. ist so ein Tutorial für hier auch mal interessant.
Für diejenigen die das ebenfalls mal ausprobieren liste ich hier mal alle Arbeitsschritte die dazu notwendig waren auf.
Um die Adressen zu speichern brauchen wir als erstes mal ne Datenbank. Wie man die in phpMyAdmin anlegt dürfte den meisten bekannt sein. Deswegen erspar ich mir mal die Erklärung hierzu.
Wer die Datenbank allerdings von Hand anlegen möchte führt auf dem Datenbankserver folgende Abfrage aus:
|
Quellcode
|
1
|
CREATE DATABASE adressbuch;
|
Nun haben wir die Datenbank aber noch keine Tabelle in der wir die Daten ablegen können.
Also erstellen wir uns eine Tabelle die die Spalten adresse, vorname, nachname, strasse, hausnummer, postleitzahl und ort enthält. Dazu führen wir folgenden Befehl in der Datenbank aus:
|
Quellcode
|
1
2
3
4
5
6
7
8
|
CREATE TABLE `adressbuch`.`adresse` (
`vorname` TEXT NOT NULL ,
`nachname` TEXT NOT NULL ,
`strasse` TEXT NOT NULL ,
`hausnummer` INT( 5 ) NOT NULL ,
`postleitzahl` INT( 10 ) NOT NULL ,
`ort` TEXT NOT NULL
) ENGINE = MYISAM ;
|
Somit haben wir schonmal unsere Datenbank mit Tabelle in die wir die Daten eintragen können. Da das eintragen der Datensätze direkt über die Datenbank zu umständlich ist schreiben wir uns nun ein kleines Formular das das für uns erledigt.
Hierfür brauchen wir 2 Dateien.
Zuerstmal das Formular an sich:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<html>
<head>
<title>Dateneingabe</title>
<body>
<form action="uebergabe.php" method="POST">
<p>Vorname:
<input type="text" name="vorname" size="50" maxlength="150" />
Nachname:
<input type="text" name="nachname" size="50" maxlength="150" />
</p>
<p>Straße:
<input type="text" name="strasse" size="50" maxlength="150" />
Hausnummer:
<input type="text" name="hausnummer" size="3" maxlength="4" />
<p>Postleitzahl:
<input type="text" name="plz" value="" size="5" maxlength="8" />
Ort:
<input type="text" name="ort" value="" size="50" maxlength="150" />
</p>
<input type="Submit" name="SUBMIT" value="speichern" />
</form>
</body>
|
Zur Erklärung:
Mit
|
Quellcode
|
1
|
<form action="uebergabe.php" method="POST">
|
legen wir fest das die ins Formular eingegebenen Daten an die Datei uebergabe.php zur weiteren Verarbeitung übergeben werden.
|
Quellcode
|
1
|
<input type="Submit" name="SUBMIT" value="speichern" />
|
sorgt dafür das die Daten an die Datei ubergabe.php zur weiteren Verarbeitung übergeben werden.
Jetzt haben wir auf jeden Fall schonmal die Möglichkeit Daten einzugeben. Nur müssen die jetzt noch in die Datenbank.
Dazu erstellen wir eine Datei mit dem Namen uebergabe.php
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<html>
<head>
<title>Daten verarbeiten</title>
</head>
<body>
<?php
// Verbindung zur Datenbank herstellen
$host = "localhost";
$user = "root";
$password = "";
$dbname = "adressbuch";
$tabelle ="adresse";
$dbverbindung = mysql_connect ($host, $user, $password);
// Übergabe der Daten an die Datenbank
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$strasse = $_POST['strasse'];
$hausnummer = $_POST['hausnummer'];
$postleitzahl = $_POST['plz'];
$strasse = $_POST['strasse'];
$ort = $_POST['ort'];
//Eintrag der Daten in die Datenbank
$dbanfrage = "INSERT into $tabelle values ('$vorname', '$nachname', '$strasse', '$hausnummer', '$postleitzahl', '$ort')";
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);
?>
<br />
<a href="anzeige.php">Daten anzeigen</a>
</body>
</html>
|
Erklärung:
Zuerstmal müssen wir die Verbindung zur Datenbank herstellen. Dafür brauchen wir die Zugangsdaten.
|
PHP-Quelltext
|
1
2
3
4
5
6
|
// Verbindung zur Datenbank herstellen
$host = "localhost";
$user = "root";
$password = "";
$dbname = "adressbuch";
$tabelle ="adresse";
|
Nachdem wir die Zugangsdaten haben können wir jetzt die Verbindung zur Datenbank herstellen mit
|
PHP-Quelltext
|
1
|
$dbverbindung = mysql_connect ($host, $user, $password);
|
Jetzt müssen wir noch die Daten aus dem Formular korrekt an die Datenbank übergeben. Hierzu benötigen wir die Namen der Eingabefelder.
|
PHP-Quelltext
|
1
2
3
4
5
6
7
|
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$strasse = $_POST['strasse'];
$hausnummer = $_POST['hausnummer'];
$postleitzahl = $_POST['plz'];
$strasse = $_POST['strasse'];
$ort = $_POST['ort'];
|
Die Variable $strasse bekommt hier den Wert des Eingabefeldes mit dem Namen strasse zugewiesen.
|
PHP-Quelltext
|
1
|
$strasse = $_POST['strasse'];
|
Nachdem wir nun die Daten auf dem Feld verarbeitet haben können wir sie nun in die Datenbank eintragen.
|
PHP-Quelltext
|
1
|
$dbanfrage = "INSERT into $tabelle values ('$name', '$strasse', '$hausnummer', '$postleitzahl', '$ort')";
|
Jetzt überprüfen wir noch ob alles funktioniert hat oder ob Fehler aufgetreten sind.
|
PHP-Quelltext
|
1
2
3
4
5
6
|
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}
mysql_close ($dbverbindung);
|
Am Ende lassen wir uns dann noch einen Link anzeigen mit dem wir die Seite aufrufen können die die in der Datenbank vorhandenen Datensätze anzeigt.
|
Quellcode
|
1
2
|
<br />
<a href="anzeige.php">Daten anzeigen</a>
|
Somit wären wir hier eigentlich fertig. Da wir aber gerne wissen möchten welche Adressen sich schon in der Datenbank befinden basteln wir uns jetzt also noch ein Skript das uns die Daten aus der Datenbank ausliest und anzeigt.
Hierfür erstellen wir uns die Datei anzeigen.php
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
<?php
// Verbindung zum Datenbankserver herstellen
$host = "localhost";
$user = "root";
$password = "";
$dbname = "adressbuch";
$tabelle ="adresse";
$dbverbindung = mysql_connect ($host, $user, $password);
//Auswahl der Datenbank
$db_sel = mysql_select_db( $dbname )
or die("Auswahl der Datenbank fehlgeschlagen");
// Anforderung der bereits vorhandenen Daten aus der Datenbank
// SQL-Befehl für den Zugriff
$sql = "
SELECT
*
FROM $tabelle
ORDER BY vorname
";
// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
// Anzeige der Anzahl der Einträge
$anzahl_eintraege = mysql_num_rows($db_erg);
echo "<p>Anzahl der Einträge: $anzahl_eintraege </p>";
// Ausgabe der Daten
while ($daten = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
// Aushabe der Daten
echo "Vorname: ";
echo $daten['vorname'];
echo "<br />";
echo "Nachname: ";
echo $daten['nachname'];
echo "<br />";
echo "Strasse: ";
echo $daten['strasse'];
echo "<br />";
echo "Hausnummer: ";
echo $daten['hausnummer'];
echo "<br />";
echo "Postleitzahl: ";
echo $daten['postleitzahl'];
echo "<br />";
echo "Ort: ";
echo $daten['ort'];
echo "<br />";
echo "<br />";
echo "<br />";
}
//Schliessen der Datenbankverbindung
mysql_free_result( $db_erg );
?>
|
Erklärung:
Zunächstmal müssen wir (da neue Datei) wieder die Verbindung zum Datenbankserver aufbauen. Das geschieht wie in der vorherigen Datei mit
|
PHP-Quelltext
|
1
2
3
4
5
6
7
|
$host = "localhost";
$user = "root";
$password = "";
$dbname = "adressbuch";
$tabelle ="adresse";
$dbverbindung = mysql_connect ($host, $user, $password);
|
Jetzt wählen wir noch die Datenbank aus, aus der die Daten ausgelesen werden sollen.
|
PHP-Quelltext
|
1
2
|
$db_sel = mysql_select_db( $dbname )
or die("Auswahl der Datenbank fehlgeschlagen");
|
Jetzt fordern wir die Daten aus der Datenbank an.
|
PHP-Quelltext
|
1
2
3
4
5
6
|
$sql = "
SELECT
*
FROM $tabelle
ORDER BY vorname
";
|
Und führen die Abfrage aus.
|
PHP-Quelltext
|
1
2
3
4
5
|
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
|
Nachdem wir die Daten nun haben wärs interessant zu wissen wieviele Einträge sich schon in der Datenbank befinden. Das lassen wir uns mit
|
PHP-Quelltext
|
1
2
|
$anzahl_eintraege = mysql_num_rows($db_erg);
echo "<p>Anzahl der Einträge: $anzahl_eintraege </p>";
|
anzeigen.
Nachdem wir das nun wissen müßten wir uns dann nur noch die in der Datenbank bereits vorhandenen Daten anzeigen lassen.
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
echo "Vorname: ";
echo $daten['vorname'];
echo "<br />";
echo "Nachname: ";
echo $daten['nachname'];
echo "<br />";
echo "Strasse: ";
echo $daten['strasse'];
echo "<br />";
echo "Hausnummer: ";
echo $daten['hausnummer'];
echo "<br />";
echo "Postleitzahl: ";
echo $daten['postleitzahl'];
echo "<br />";
echo "Ort: ";
echo $daten['ort'];
echo "<br />";
echo "<br />";
echo "<br />";
}
|
In der Spalte Postleitzahl wird der Wert des Feldes Postleitzahl angezeigt, usw.
|
PHP-Quelltext
|
1
2
3
|
echo "Postleitzahl: ";
echo $daten['postleitzahl'];
echo "<br />";
|
Zu guter letzt schließen wir noch die Verbindung zur Datenbank.
|
PHP-Quelltext
|
1
|
mysql_free_result( $db_erg );
|
Das wars.
Wenn ihr alles richtig gemacht habt sieht das ganze dann so aus wie auf den Screenshots. Designtechnisch gesehen nicht wirklich schön. Aber es erfüllt seinen Zweck.