Formular zum ändern von Datensätzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular zum ändern von Datensätzen

    Ich habe vor einiger Zeit angefangen mit PHP zu programmieren und habe bei einer mal eine Frage. Und zwar habe ich drei Scripte geschieben (eigentlich ganz simpel vom Aubau) mit denen ich mir einemal Datensätze aus der Datenbank anzeigen lassen kann und Sie ändern kann. Jedoch habe ich das Problem, dass wenn ich den gewünschten Datensatz ändern möchte und ich Ihn dann abspeichern will in der Datenbank, das er dies nicht tut. Ich hoffe das mir jemand weiterhelfen kann.

    Hier die Skripte:

    Datensatz anzeigen und Auswählen

    <body>
    Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
    <form action = "Formprg2.php" method = "post">

    <?php
    mysql_connect();
    mysql_select_db("firma");

    $res = mysql_query("select * from personen");
    $num = mysql_num_rows($res);

    // Tabellenbeginn
    echo "<table border>";

    // Überschrift
    echo "<tr> <td>Auswahl</td> <td>Name</td>";
    echo "<td>Vorname</td> <td>P-Nr</td>";
    echo "<td>Gehalt</td> <td>Geburtstag</td> </tr>";

    while ($dsatz = mysql_fetch_assoc($res))
    {
    echo "<tr>";
    echo "<td><input type='radio' name='auswahl'";
    echo " value='" . $dsatz["personalnummer"] . "'></td>";
    echo "<td>" . $dsatz["name"] . "</td>";
    echo "<td>" . $dsatz["vorname"] . "</td>";
    echo "<td>" . $dsatz["personalnummer"] . "</td>";
    echo "<td>" . $dsatz["gehalt"] . "</td>";
    echo "<td>" . $dsatz["geburtstag"] . "</td>";
    echo "</tr>";
    }

    // Tabellenende
    echo "</table>";
    ?>

    <p>
    <input type="submit" value="Datensatz anzeigen">
    </form>

    </body>

    Datensatz anzeigen und ändern

    <?php

    if (isset($_POST["auswahl"]))
    {
    mysql_connect();
    mysql_select_db("firma");

    $sqlab = "select * from personen where";
    $sqlab .= " personalnummer = $auswahl";
    $res = mysql_query($sqlab);
    $dsatz = mysql_fetch_assoc($res);

    echo "Führen Sie die Änderungen durch,<p>";
    echo "betätigen Sie anschließend den Button<p>";
    echo "<form action = 'Formprg3.php' method = 'post'>";

    echo "<input type='text' name='nn' value='" . $dsatz["name"] . "'> Nachname<p>";
    echo "<input type='text' name='vn' value='" . $dsatz["vorname"] . "'> Vorname<p>";
    echo "<input type='text' name='pn' value='auswahl'> Personalnummer<p>";
    echo "<input type='text' name='ge' value='" . $dsatz["gehalt"] . "'> Gehalt<p>";
    echo "<input type='text' name='gt' value='" . $dsatz["geburtstag"] . "'> Geburtstag<p>";
    echo "<input type='hidden' name='oripn' value='$auswahl'>";

    echo "<input type='submit' ";
    echo "value='Änderungen in Datenbank speichern'><p>";
    echo "<input type='reset'>";
    echo "</form>";
    }
    else
    echo "Es wurde kein Datensatz ausgewählt<p>";

    ?>

    Änderung ausführen

    <?php
    mysql_connect();
    mysql_select_db("firma");

    $sqlab = "update personen set name = '" . $_POST['nn'] . "',";
    $sqlab .= " vorname = '" . $_POST['vn'] . "',";
    $sqlab .= " personalnummer = " . $_POST['pn'] . ",";
    $sqlab .= " gehalt = " . $_POST['ge'] . ",";
    $sqlab .= " geburtstag = '" . $_POST['gt'] . "'";
    $sqlab .= " where personalnummer = " . $_POST['oripn'] . ",";

    mysql_query($sqlab);

    $num = mysql_affected_rows();
    if ($num>0)
    echo "Der Datensatz wurde geändert<p>";
    else
    echo "Der Datensatz wurde nicht geändert<p>";
    ?>

    Zurück zur <a href="Formprg1.php">Auswahl</a>

  • #2
    Re: Formular zum ändern von Datensätzen

    1. bitte verwende [ php ]-tags zum posten von quellcode.

    2. bitte gewöhne dir an, immer elementare debugging-schritte durchzuführen, bevor du so eine frage postest:
    -> kontroll ausgabe des zusammengesetzten query-strings mit echo.
    -> verwendung von mysql_error() nach jeder query-übergabe, also
    PHP-Code:
    $blah mysql_query(...) or die(mysql_error()); 
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      haste mal geschaut ob den alle Daten die benötigt werden ankommen?


      PHP-Code:
      print_r($_POST); 
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        Alles klar es funktioniert, ich hatte ein Komma falsch gesetzt.

        Kommentar

        Lädt...
        X