|
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="<?php echo $_daten["name"]; ?>"><br>
<input name="adresse" value="<?php echo $_daten["adresse"];?>"><br>
<input type=submit name=submit value="Formular absenden">
</form>
<?
# 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.
Kommentare: (absteigend sortiert)
Hier stehen noch alte Kommentare, die direkt über die Webseite gemacht wurden. Es kann dort nicht weiter kommentiert werden. Bitte nutzt dafür die Facebook Kommentare.
.:: 13.03.14 - 19:01 Uhr :: Name: anonymus ::. |
Hallo,
tutorial ist super, jedoch ein bisschen veraltet. Seit langem weisen die PHP "Freaks" dararuf hin, dass man die neue mysqli interface benutzen soll Anmerkung Charly: Danke. Basics sind aber nie veraltet. Und erst Krabbeln, Laufen, Rennen und dann zur Olympiade anmelden. Ich kriege viele Mails von Leuten die gleich Plugins Programmieren wollen, aber noch kein Echo absetzen können.
Es führen viele Wege nach Rom. Wenn man einen davon erstmal kapiert hat kümmert man sich um den Rest :-) |
.:: 30.04.13 - 19:10 Uhr :: Name: mir ::. |
zwei Fragen: wie sieht das Script aus, wenn man in html andere Werte einträgt, also wirklich ein Formular hat, dessen Werte dann in die Datenbank übertragen werden soll?
Zweitens: Das Auslesen sieht ja noch ein bisschen “hässlich†vom Style her aus…geht das einfach schöner zu machen, in einer Tabelle mit Drop-Down-Auswahl zb.?
Danke von mir! |
.:: 12.10.11 - 23:10 Uhr :: Name: Enzo ::. |
Hallo
Ich würde gerne wissen wie ich ein "google" mässiges Abfrage Formular hinbekomme. Damit ich dann ein beliebiges item in das Suchfeld eingeben kann und dann "Search" dann spuckt es mir einen Datensatz von der Datenbank aus.
Kann wer helfen? |
.:: 31.03.11 - 07:10 Uhr :: Name: Jojo ::. |
Klasse Tutorials, hast mir echt geholfen!
Weiter so..!
Beste Grüße
Deine Jojo |
.:: 29.11.10 - 17:40 Uhr :: Name: Ben ::. |
ich kapire das nicht was muss ich jetzt in die formular.php rein schrieben! Anmerkung Charly: Hallo Ben, der Quelltext oben ist der gesamte Inhalt aus der Datei formular.php - einfach mit einem Editor als Datei abspeichern. |
.:: 07.08.10 - 10:38 Uhr :: Name: Charly ::. |
Wenn du mit der Zeile Probleme hast, kann es sein dass bei Dir in der Apache/PHP Konfiguration die Short_Open_Tags nicht aktiviert sind. Dann funktioniert <? nicht für PHP - dann muss man PHP immer mit <?php beginnen.
Probiers mal aus.
Gruß
Charly |
.:: 07.08.10 - 00:17 Uhr :: Name: Jürgen ::. |
Hallo
ich habe mit dieser Zeile Probleme
<input name=\"adresse\" value=\"<?=$_daten[\"adresse\"];?>\"><br>
Stimmt da was nicht
|
|