Stefan: Form aus Datenbank füllen

Hallo, ich bin ain absoluter nub audf dem gebiet und veruche seit Stunden eine einfache form aus meiner sql datenbank zu füllen:

<?

include "config.php";
        include "dbcon.php";

global $host, $user, $passwort, $database;
 global $vorname, $nachname, $strasse, $hausnummer, $plz,

$query = "UPDATE login_user SET ";
  $query .= "vorname='" . $vorname . "',";
  $query .= "nachname='" . $nachname . "',";
  $query .= "strasse='" . $strasse . "',";
  $query .= "hausnummer='" . $hausnummer . "',";
  $query .= "plz='" . $plz . "',";

?>

Diese Felder sollen automatisch gefü+llt werden, wie kriege ich das hin? Wie ist das sql statment, so das die formen ausgefüllt sind, wenn ich die Seite im browser anschaue.
Vielen Dank für eure Beiträge!

Config.php
<?php
// *** Variablen ***
//        MySQL server hostname
$host = "localhost";
//        MySQL server username
$user = "root";
//        MySQL server password
$password = "nowloader";
//        MySQL database name
$database="login";
// URL were the script is hosted
$BaseURL="127.0.0.1";
// table with the usernames and passwords
$userdata_table = "userdata";
?>
dbcon.php
<?php
$connection=mysql_connect("$host","$user","$password");
mysql_select_db($database,$connection)
or die (mysql_errno() . " - " . mysql_error() . "<br>\n");
?>

  1. Hi!
    Also verstehe ich das richtig, das Du die Fekder eines HTML-Formulars mit den Werten aus der DB vorausfüllen willst?

    Dann mußt Du einefach verher eine Select Abfrage machen:

    SELECT * FROM tabelle WHERE ID = 'Datensatz_ID';

    Und dann kannst Du mit

    $user = mysql_fetch_arry($result)

    über $user[vorname]... an die Daten kommen, die Du dann in den Value des entsprechenden Inlut-Feldes schreiben kannst:

    <input type="text" name="vorname" value="<? echo $user[vorname]?>">

    Hattest Du das gemeint?

    Grüße
    Andreas

    1. Ja so in der art.. leider versteh ich nicht so viel davon, und raff das nicht gaz, kannst du nicht mal an dem beispiel (daten von dbnamen und user stehen ja im forum) mir einfacfh nen php code zeigen, wo ein feld angezeigt wird das automatisch gefüllt ist aus meiner datenbank.
      ZB: name

      Das wäre super, evtl raffe ich es dann.
      *schäm*

      1. Hatte doch alles geschrieben?!

        Du hast Doch eine Update-Anweiseung die Du ausührst, genau so mußt Du die Select-Anweisung ausführen!

        PHP-Teil:

        $query="SELECT * FROM tabelle WHERE ID = 'Datensatz_ID'";
        $result = mysql_query($query, $connection);
        http://www.php.net/manual/de/function.mysql-query.php

        $user = mysql_fetch_arry($result)
        http://www.php.net/manual/de/function.mysql-fetch-array.php

        im HTML-Formular:

        <input type="text" name="vorname" value="<? echo $user[vorname]?>">

        Les hier mal ein bisschen, dauert nicht lange, aber das ist wirklich alles gut erklärt: http://www.schattenbaum.net/php/

        Darin steht alles was Du wissen mußt!

        Viele Grüße
        Andreas

        1. Moin auch hier!

          im HTML-Formular:

          <input type="text" name="vorname" value="<? echo $user[vorname]?>">

          Kleiner "Fauxpas": Der Hashindex muß in Anführungszeichen, wenn keine Konstante vorname definiert ist, die den String "vorname" ergibt.

          Also $user["vorname"] anstatt $user[vorname]. Ohne Anführungsstriche wird nicht der String genommen, sondern vorname als Konstante betrachtet. Würde es eine Variable $vorname geben, kann man natürlich auch $user[$vorname] schreiben, das ist aber noch mal was anderes.

          Mit anderen Worten: $user["vorname"] - oder auch $user["nachname"] nehmen.

          - Sven Rautenberg

          1. Hi!

            Kleiner "Fauxpas": Der Hashindex muß in Anführungszeichen, wenn keine Konstante vorname definiert ist, die den String "vorname" ergibt.

            Ups - das mache ich immer so!!! Hatte aber ehrlich gesagt bis jetzt noch keine Probleme! (bzw. nicht das ich wüßte!!!)

            Also $user["vorname"] anstatt $user[vorname]. Ohne Anführungsstriche wird nicht der String genommen, sondern vorname als Konstante betrachtet. Würde es eine Variable $vorname geben, kann man natürlich auch $user[$vorname] schreiben, das ist aber noch mal was anderes.

            Was heißt denn genau als Konstante ??? $user[] bezieht sich doch auf alle Fälle auf besagten Array, und ich bekomme bei beiden Versionen immer dasselbe?! Was meinst Du genau?

            Viele grüße
            Andreas

            1. Moin!

              Ups - das mache ich immer so!!! Hatte aber ehrlich gesagt bis jetzt noch keine Probleme! (bzw. nicht das ich wüßte!!!)

              Ist aber falsch, auch wenn PHP hier scheinbar auto-korrigiert, weil wohl nichts anderes gemeint sein kann. Du hast aber spätestens dann ein Problem, wenn du dir die Hash-Werte zusammenaddierst.

              Was heißt denn genau als Konstante ??? $user[] bezieht sich doch auf alle Fälle auf besagten Array, und ich bekomme bei beiden Versionen immer dasselbe?! Was meinst Du genau?

              In PHP gibts neben Variablen auch Konstanten. Die werden mit define() festgelegt und üblicherweise komplett GROSS geschrieben. Mit define("VORNAME","nachname"); kann ich der Konstanten VORNAME den String "nachname" zuweisen.

              Wenn ich dann mit echo VORNAME; die Konstante ausgeben lasse, erscheint "nachname" ausgedruckt, und wenn ich mit $user[VORNAME] den Hash aus der Datenbank anspreche wird in Wirklichkeit $user["nachname"] angesprochen.

              Es gibt in PHP klare Regeln zur Benennung:
              Variablen haben vorn ein Dollarzeichen: $variable
              Konstanten sollten durchgehend GROSS geschrieben werden, Kleinschreibung funktioniert aber genauso!
              Konstante Strings gehören in Anführungszeichen: "fester string"

              Es ist gut, sich an diese Regeln zu halten.

              - Sven Rautenberg

              1. Hi!

                Aber was ist der Unterschied zw. einer Konstante und einer Variable(außer der Schreibweise)?
                Wie sich das anhört machen die genau dasselbe, nur ist das mit define(KONSTANTE,"wert") mehr zu schreiben als $variable="wert", oder habe ich Dich da falsch verstanden? Was hat man davon??? Was ist der Unterschied?
                Grüße
                Andreas

                PS: Auch wenn ich das (jetzt) bicht einsehe, bin aucgh aber auch der MEinung man sollte sich daran halten, denn wenn man später was implementiert.... das gibts Probleme...

                1. Hi!

                  Aber was ist der Unterschied zw. einer Konstante und einer Variable(außer der Schreibweise)?

                  Wie sich das anhört machen die genau dasselbe, nur ist das mit define(KONSTANTE,"wert") mehr zu schreiben als $variable="wert", oder habe ich Dich da falsch verstanden? Was hat man davon??? Was ist der Unterschied?

                  Eine "Konstante" ist üblicherweise ... konstant. ;) Soll heißen: Man definiert die _einmal_, und dann nie wieder, und kann sie auch nicht ändern.

                  Warum macht man sowas? Weil es vielleicht gewisse Werte gibt, die man konstant und unveränderbar (im Programm!) definieren möchte.

                  Ein Beispiel:
                  Was ja häufiger vorkommt ist, daß man eine externe Datei in jedem PHP-Skript includet, um z.B. Username und Paßwort für den Datenbankzugang und noch etliche andere Werte zu definieren, beispielsweise, welche Datenbanktabellen abgefragt werden sollen.

                  Sowas kann man an Variablen zuweisen. Die Gefahr besteht aber, daß man bei unvorsichtiger Auswahl der Variablennamen, entweder in der Konfigurationsdatei oder im jeweiligen Skript, ganz aus Versehen eine Konfigurationsvariable überschreibt und so Mist erhält.

                  Für sowas wären Konstanten prima. Die werden einmal definiert, sind von den Variablennamen unabhängig und können nicht geändert werden.

                  Ich habe das persönlich noch nicht so gemacht, werde es aber, da mir die Idee sehr gut gefällt, beim nächsten Mal ganz sicher mit Konstanten versuchen.

                  - Sven Rautenberg

                  1. Hallo!
                    In der Tat sehr interssant, mal schaun wo ich das einsetze, Benutzername und Passwort zum einloggen beispielsweise speicher ich in einer Session, das dürfte alos nicht gehen.
                    Mal schaun wo ich das dann mal verwenden kann, Danke jedenfalls für die Erläuterung!

                    Viele Grüße
                    Andreas