[PHP] Formulardaten an DB senden

Dieses Thema im Forum "Webentwicklung" wurde erstellt von mW2fast4u, 8. Oktober 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. Oktober 2009
    Formulardaten an DB senden

    Hi,
    ich habe eine Tabelle mit Formularfeldern wo ich daten ergänzen soll und diese dann an die DB gesendet bzw aktualisiert werden.
    Habe 2 Tabellen, die ich auch schon zs gefügt habe.
    jetzt bin ich soweit, dass wenn ich in der datenbank für die felder werte setze, diese auch in der tabelle ( Formular) angezeigt werden. Nur wie funktionierts nun andersrum? Steh da echt aufn schlauch

    bsp:

    ich habe hier eine spalte

    Code:
    <td><div align="center">Vorname</div></td>
    hier der befehl für das dazugehörige Feld (wie es in der DB vertreten ist):
    Code:
    <?php echo $row->VORNAMESCH; ?>
    Ein speicher button ist auch schon vorhanden. Wenn ich auf diesen klick sollen die Daten des Schülers aktualisiert werden. aber ich muss ja erstmal eine verbindung zur datenbank herstellen.

    hab soweit eine zweite php (update.php) erstellt hier ein auszug:

    Code:
    mysql_connect('localhost', 'ODBC', 'test');
    mysql_select_db("bku");
    // Werte aus der Bearbeitungs-Seite werden an Variablen übergeben
     $VORNAMESCH = $_POST['Vorname']..usw...;
    
    $update = "UPDATE Benutzer GET VORNAMESCH = '$VORNAMESCH' usw....
    $result = mysql_db_query;
    tja und hier hakts
    achja ich arbeit mit xxamp
     
  2. 8. Oktober 2009
    AW: Formulardaten an DB senden

    Schau dir mal das Update Statement an.

    z.B. eine Variante wäre:
    PHP:
    Update Spalte SET vornamesch = '".$vornamesch."'
     
  3. 8. Oktober 2009
    AW: Formulardaten an DB senden

    hilft dir das kleine beispiel:

    Code:
    <html>
     <head>
     <title>
     </title>
     </head>
     <body>
     <h2>Bearbeiten Maske</h2>
     <form method="POST" action="_deine_datei.php">
     <input type="hidden" name="userid" value="<?php echo $row->userid; ?>">
     Vorname : <input type="text" name="vorname" value="<?php echo $row->vorname; ?>">
     Nachname : <input type="text" name="nachname" value="<?php echo $row->nachname; ?>">
     <input type="submit" value="Speichern">
     </form>
     
     </body>
    </html>
    <?php
    // _deine_datei.php
    if(!empty($_POST)) {
    mysql_connect('localhost', 'ODBC', 'test');
    mysql_select_db("bku");
    // Werte aus der Bearbeitungs-Seite werden an Variablen übergeben
     $VORNAMESCH = $_POST['Vorname']..usw...;
    
    $update = "UPDATE Benutzer SET VORNAMESCH = '$VORNAMESCH' WHERE 'userid' = $userid";
    ...
    }
    
    ?>
    
     
  4. 8. Oktober 2009
    AW: Formulardaten an DB senden

    ok danke,

    wenn ich auf speichern klick springt der auf die andere seite und nichts passiert...

    wie setze ich denn die user.id fest??

    in der datenbank?
     
  5. 8. Oktober 2009
    AW: Formulardaten an DB senden

    du musst in deiner datenbank eine eindeutige zuweisung haben:

    z.B.

    Tabelle Person
    userid
    name
    vorname
    anrede
    geschlecht
    ...

    du kannst also anhand der userid jede person eindeutig indetifizieren. immerhin könnte es den max mustermann, 2 mal geben .

    ein beispiel:

    userid, vorname, name, anrede, geschlecht
    1, max, mustermann, herr, m
    2, christine, mustermann, frau, w
    3, herbert, gustav, herr, m

    wenn du folgenden SQL Befehl ausführst, änderst du den namen von der christine mustermann:

    UPDATE Person SET vorname = 'barbara' WHERE userid = 2;

    ergebnis ist folgendes:

    2, barbara, mustermann, frau, w

    die frage ist nun wie dein schüler eindeutig identifiziert werden kann, evtl musst du eine art userid hinzufügen.
     
  6. 8. Oktober 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Formulardaten an DB senden

    du meinst sicherlich die felder?

    also zuerst die werte in die felder angeben..

    ja also könnte man doch eine variable nutzen $benutzer? für den user?

    oder muss man drauf achten was in der datenbank steht?

    also hab jetz in der tabelle den wert ID_ADS, hab jetzt mal 2 spalten erstellt und es kommt 1 ID_ADS 6&7
    und aktiv 1&2

    https://www1.xup.in/exec/ximg.php?fid=13524331

    https://www1.xup.in/exec/ximg.php?fid=77320409
     
  7. 9. Oktober 2009
    AW: Formulardaten an DB senden

    du musst ja deinen person identifizieren, die ID_ADS ist dazu optimal.

    Hier hast du mal ein sehr vereinfachtest Beispiel:

    formular.php
    Code:
    <?php
     mysql_connect("host", "benutzername","passwort") or die ("Keine Verbindung moeglich");
     mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht");
     
     $sql = "SELECT * FROM tabellenname WHERE ID_ADS = 6";
     $result = mysql_query($sql);
     
     $row = mysql_fetch_object($result);
     ?>
     
     <html>
     <head>
     <title>
     </title>
     </head>
     <body>
     <h2>Bearbeiten Maske</h2>
     <form method="POST" action="update.php">
     <input type="hidden" name="id" value="<?php echo $row->ID_ADS; ?>">
     Vorname : <input type="text" name="vorname" value="<?php echo $row->Vornamesch; ?>">
     Nachname : <input type="text" name="nachname" value="<?php echo $row->Schuelerna; ?>">
     <input type="submit" value="Speichern">
     </form>
     
     </body>
    </html>
    
    1) Verbindung zur Datenbank aufbauen
    2) Hole die Informationen von dem Benutzer mit der ID_ADS = 6 aus der Datenbank
    3) Erstelle eine Formular das beim Absende die Werte an die update.php sendet
    4) Eingabefelder mit den Werten aus der Datenbank füllen Bsp: <?php echo $row->Vornamesch; ?>


    update.php
    Code:
    <?php
     mysql_connect("host", "benutzername","passwort") or die ("Keine Verbindung moeglich");
     mysql_select_db("datenbank") or die ("Die Datenbank existiert nicht");
     
     // hole die gesendeten Daten
     $id = $_POST['id'];
     $nachname = $_POST['nachname'];
     $vorname = $_POST['vorname'];
     
     
     $sql = "UPDATE tabellenname SET Vornamesch = '$vorname' AND Schuelerna = '$nachname' WHERE ID_ADS = $id";
     $result = mysql_query($sql);
     ?>
     
     <html>
     <head>
     <title>
     </title>
     </head>
     <body>
     <h2>Der Benutzer <?php echo "$vorname $nachname"; ?> wurde erfolgreich abgespeichert.</h2>
     </body>
    </html>
    
    1) Verbindung zur Datenbank aufbauen
    2) Die von dem Formular gesendeten Daten holen
    3) Den Benutzer mit der übergebenen ID bearbeiten
    4) Feedback das der Benutzer abgespeichert wurde
     
  8. 10. Oktober 2009
    AW: Formulardaten an DB senden

    vielen vielen dank...

    ich melde mich die tage wenns geklappt hat
     
  9. 11. Oktober 2009
    AW: Formulardaten an DB senden

    Hi,

    auf was Du auch unbedingt achten musst sind SQL-Injections.
    Umgehe die einfach, indem Du die Werte ($_POST['xy']) mit z.B. mysql_real_escape_string filterst.

    Grüße,
    MArc
     
  10. 14. Oktober 2009
    AW: Formulardaten an DB senden

    ich bekomm jetzt bei der update.php folgenden fehler:

    Warning: Wrong parameter count for mysql_db_query() in update.php on line 23

    Code:
    $update = "UPDATE tbl_ads SET Vorname= '$Vornamesch' AND Nachname = '$Schuelerna' WHERE ID_ADS = $id";
    
    $result = mysql_db_query($update);
     
  11. 15. Oktober 2009
    AW: Formulardaten an DB senden

    probier mal das hier:

    Code:
    $update = "UPDATE `tbl_ads` SET `Vorname`= '$Vornamesch' AND `Nachname` = '$Schuelerna' WHERE `ID_ADS` = $id";
    
    $result = mysql_db_query($update);
     
  12. 15. Oktober 2009
    AW: Formulardaten an DB senden

    danke wolli

    ich hab meine dateien momentan nicht dabei, werd dir morgen früh berichten
     
  13. 16. Oktober 2009
    AW: Formulardaten an DB senden

    Hm okay,
    bekomm immer noch denselben fehler wrong parameter...
     
  14. 31. Oktober 2009
    AW: Formulardaten an DB senden

    wisst ihr worans lag?

    ich musste die variablen beim UPDATE einzelnt trennen


    so:

    $update = "UPDATE `tbl_ads` SET `Vorname`= '".$Vornamesch."'
     
  15. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.