|
Variablen aus der Datenbank in ein Textfeld schreiben
Wir haben eine MySQL Datenbank. Innerhalb dieser Datenbank existiert eine Tabelle, die wir
zum Beispiel mit PHPMyAdmin angelegt haben. Diese Tabelle können wir mit Werten füttern ;
z.B. in unserem Fall mit Telefonnummern, Adressen usw.
Datei formular.php:
<?php $_db_host = "localhost"; $_db_username = "username"; $_db_passwort = "passwort"; $_db_datenbank = "datenbank";
# Verbindung zur Datenbank herstellen $_link = mysql_connect($_db_host, $_db_username, $_db_passwort);
# Prüfen ob die Verbindung geklappt hat if (!$_link) { # Nein, also das ganze Skript abbrechen ! die("Keine Verbindung zur Datenbank möglich: " . mysql_error()); }
# Verbindung hat geklappt, weiter ... echo "Verbindung zur Datenbank erfolgreich.<br>";
# Datenbank auswählen mysql_select_db($_db_datenbank, $_link);
# Daten aus der Tabelle selektieren # Wir nehmen den ganzen Eintrag (*), wo (where) die id gleich 2 # ist und wir wollen nur 1 Zeile als Ergebnis (limit 1) $_sql = "SELECT * FROM adressen WHERE id=2 LIMIT 1"; $_resultat = mysql_query($_sql, $_link);
# Den gefundenen Datensatz einlesen ! $_daten = mysql_fetch_array($_resultat, MYSQL_ASSOC);
# Alle Daten aus dem Array anzeigen print_r($_daten);
?> <form method="POST" action="formular.php"> <input name="name" value="<?phpphp echo $_daten["name"]; ?>"><br> <input name="adresse" value="<?phpphp echo $_daten["adresse"];?>"><br> <input type=submit name=submit value="Formular absenden"> </form> <?php
# Datenbankverbindung wieder schliessen mysql_close($_link); ?>
|
Erklärung:
Oben in den ersten Zeilen müssen die Login Daten zu der Datenbank angegeben
werden. Sollte bei Host localhost nicht funktionieren, kann man auch 127.0.0.1
probieren. Wenn keine Verbindung zur Datenbank aufgebaut werden kann, dann bricht
das Skript mit der MySQL Fehlermeldung ab.
Kommt die Verbindung zustande wird die Datenbank selektiert. Innerhalb dieser
Datenbank befinden sich unsere Tabellen, die wir dann mit dem Select Befehl
abfragen. Jetzt können wir die Daten abfragen und die Daten aus der
Datenbank in unser Formular eintragen.
Mit mysql_fetch_array holen wir den vorher mit Select selektierten Datensatz aus
der MySQL Tabelle und legen diesen in $_daten als Array ab. Das Print_r soll euch
nur nochmal zeigen, was alles nun in dieser Variable gespeichert ist. Jetzt können
wir die einzelnen Werte dieser Variable benutzen.
Achtung: durch das MYSQL_ASSOC erreichen wir, dass der name des Tabellenfeldes im Array
genauso hinterlegt wird, wie es in der Tabelle heisst. Haben wir zum Beispiel in der Tabelle
ein Feld, welches strasse heisst, dann erscheint der Wert dieses Feldes im Array
$_daten["strasse"]; ... lassen wir das MYSQL_ASSOC weg, dann könnt Ihr euch die Daten
in $_daten[1]; usw abholen, was natürlich sehr unübersichtlich und nicht zu praktizieren
ist.
Zuerst wechseln wir mit ?> von PHP wieder auf HTML und geben die HTML Kommandos
für das Formular ein. Wie Formulare genau aufgebaut werden, könnt Ihr
hier
nachlesen. Für uns ist das input Feld relevant wo wir die Variablen Werte
drinne ablegen werden. Nachdem das Feld mit input bestimmt wurde nutzen wir den HTML Befehl
value="". Mit Hilfe von value ist es möglich dem Formularfeld Werte vorzugeben.
Diese werden dann schon angezeigt, bevor der User überhaupt was eingibt.
Wie Ihr seht haben wir euch hier 2 verschiedene values gezeigt, zwei verschiedene
Arten, wie man die Werte darin eintragen kann. Der Wert muss natürlich
innerhalb der Anführungszeichen stehen, daher wechseln wir in beiden values
innerhalb der Anführungszeichen in den PHP Modus.
Im ersten Beispiel haben wir mit Hilfe von echo den Inhalt aus $_daten["name"]; ausgegeben.
Will man nur einen Wert ausgeben, so kann man dies wie im zweiten Valuebeispiel gezeigt auch
abkürzen und anstelle des echos das Gleichheitszeichen verwenden. Beides erzeugt genau
den gleichen Effekt - den Wert der Variable auszugeben.
Die $_POST Werte abfragen
Wenn Ihr nun die Werte aus dem Formular abfragen wollt, die der User endgültig eingegeben
und dann abgesendet hat, so findet Ihr sämtliche Formulardaten in dem Array $_POST
wieder. Achtet auf die Großschreibung ! Mit einem print_r($_POST); könntet
Ihr euch dann angucken, was alles gespeichert ist - hier eine kleine Möglichkeit die
eingegebenen Daten dann wieder auszugeben:
<?php if (!empty($_POST["submit"])) { echo "Als Name hast du " . $_POST["name"] . " eingegeben.<br>"; echo "Die Adresse: " . $_POST["adresse"] . "<br>";
print_r($_POST); } ?>
|
Erklärung:
Wenn $_POST nicht leer ist, dann arbeite den Inhalt der geschweiften Klammern ab und
gebe mit echo den Inhalt des Textes und der beiden $_POST Werte aus. Zusätzliche
gebe das komplette Array mit print_r aus.
|