Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

PHP Formular

Hallo,

Ich möchte das man Datensätze aus einer MYSQL- Datenbank ändern kann. Die Daten werden schon ausgelesen und angezeigt aber wenn ich sie ändere und speichere, dann sind alle Datensätze außer der zweite NULL, der zweite erscheint dann ohne denn Änderungen... :(


Zitat
echo '<form action="preise.php" method="post" name="FormName">';

if (isset($_POST["submitButtonName"])) {
                                      $sql = "update Preise set ID = '$ID', Klasse = '$Klasse', Grundgebühr = '$Grundgebühr', Übungsstunde = '$Übungsstunde', Sonderstunde = '$Sonderstunde', Theorieprüfung = '$Theorieprüfung', Praxisprüfung = '$Praxisprüfung', Bemerkung = '$Bemerkung', Datum = '. date(Y-m-d H:i:s) .'";
                                     
                                      // echo "SQL: '$sql'
                              
                                     
                                      mysql_query($sql);
                                 
                              }

$daten = mysql_query('SELECT
                     *
                  FROM Preise
                        ORDER BY ID')
                  or die(mysql_error());

echo '<table border="5" bordercolorlight="red" cellpadding="10" cellspacing="10" align="center">
      <tr><th><center><big>ID</big></center></th>
        <th><center><big>Klasse</big></center></th>
          <th><center><big>Grundgebühr</big></center></th>
          <th><center><big>Übungsstunde</big></center></th>
          <th><center><big>Sonderstunde</big></center></th>
          <th><center><big>Theorieprüfung</big></center></th>
          <th><center><big>Praxisprüfung</big></center></th>
          <th><center><big>Bemerkung</big></center></th>
      </tr>';


$result = mysql_num_rows($daten);
while ($result = mysql_fetch_array($daten)) {


                                 echo '<tr onMouseOver="this.bgColor=\'#AAAAFF\'" onMouseOut="this.bgColor=\'#FFFFFF\'">';
                                     echo '<td><center><font size="+1"><input type="text" name="ID" id="input" value=' . $result["ID"] . '></font></center></td>';
                                    echo '<td><center><font size="+1"><input type="text" name="Klasse" id="input" value=' . $result["Klasse"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Grundgebühr" id="input" value=' . $result["Grundgebühr"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Übungsstunde" id="input" value=' . $result["Übungsstunde"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Sonderstunde" id="input" value=' . $result["Sonderstunde"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Theorieprüfung" id="input" value=' . $result["Theorieprüfung"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Praxisprüfung" id="input" value=' . $result["Praxisprüfung"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Bemerkung" id="input" value=' . $result["Bemerkung"] . '></font></center></td>';
                                 } 
                                 
echo '</table>';

echo '<br><input type="submit" name="submitButtonName" value="Speichern" id="input">';
echo '<input type="reset" value=" Zurücksetzen">';
echo '</form>';

Grüße Jake

Antworten zu PHP Formular:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ändere mal deine SQL-Abfrage zum Ändern so ab, dass du statt

update Preise set ID = '$ID', Klasse = '$Klasse', ... sowas verwendest:update Preise set Klasse = '$Klasse', ... WHERE ID = '$ID'

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Danke,
Hab ich gemacht und ein neues Feld Sort (Sortierung) in mein Formular (und in meine Datenbank) eingefügt. Wenn ich jetzt auf speichern drücke bleiben die Daten immer noch unverändert.

 

Zitat
echo '<form action="preise.php" method="post" name="FormName">';

if (isset($_POST["submitButtonName"])) {
                                 $sql = "update Preise set Sort = '$Sort', Klasse = '$Klasse', Grundgebühr = '$Grundgebühr', Übungsstunde = '$Übungsstunde', Sonderstunde = '$Sonderstunde', Theorieprüfung = '$Theorieprüfung', Praxisprüfung = '$Praxisprüfung', Bemerkung = '$Bemerkung', Datum = '. date(Y-m-d H:i:s) .' WHERE ID = '$ID'";

                                  // echo "SQL: '$sql'

                                mysql_query($sql);
                              }

$daten = mysql_query('SELECT
                     *
                  FROM Preise
                        ORDER BY Sort')
                  or die(mysql_error());

echo '<table border="5" bordercolorlight="red" cellpadding="10" cellspacing="10" align="center">
      <tr><th><center><big>Sortierung</big></center></th>
        <th><center><big>Klasse</big></center></th>
          <th><center><big>Grundgebühr</big></center></th>
          <th><center><big>Übungsstunde</big></center></th>
          <th><center><big>Sonderstunde</big></center></th>
          <th><center><big>Theorieprüfung</big></center></th>
          <th><center><big>Praxisprüfung</big></center></th>
          <th><center><big>Bemerkung</big></center></th>
      </tr>';


$result = mysql_num_rows($daten);
while ($result = mysql_fetch_array($daten)) {


                                 echo '<tr onMouseOver="this.bgColor=\'#AAAAFF\'" onMouseOut="this.bgColor=\'#FFFFFF\'">';
                                     echo '<td><center><font size="+1"><input type="text" name="Sort" id="input" value=' . $result["Sort"] . '></font></center></td>';
                                    echo '<td><center><font size="+1"><input type="text" name="Klasse" id="input" value=' . $result["Klasse"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Grundgebühr" id="input" value=' . $result["Grundgebühr"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Übungsstunde" id="input" value=' . $result["Übungsstunde"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Sonderstunde" id="input" value=' . $result["Sonderstunde"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Theorieprüfung" id="input" value=' . $result["Theorieprüfung"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Praxisprüfung" id="input" value=' . $result["Praxisprüfung"] . '></font></center></td>';
                                     echo '<td><center><font size="+1"><input type="text" name="Bemerkung" id="input" value=' . $result["Bemerkung"] . '></font></center></td>';
                                 }

echo '</table>';

echo '<br><input type="submit" name="submitButtonName" value="Speichern" id="input">';
echo '<input type="reset" value=" Zurücksetzen">';
echo '</form>';

?>

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Was gibt echo mysql_error(); aus?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nichts und ich habe vergessen die Variablen zu setzen, geht aber trotzdem nicht...

 

Zitat
                                            $ID   = $_POST["ID"];
                                            $Sort   = $_POST["Sort"];
                                            $Klasse   = $_POST["Klasse"];
                                            $Grundgebühr    = $_POST["Grundgebühr"];
                                            $Übungsstunde = $_POST["Übungsstunde"];
                                            $Sonderstunde   = $_POST["Sonderstunde"];
                                            $Theorieprüfung   = $_POST["Theorieprüfung"];
                                            $Praxisprüfung    = $_POST["Praxisprüfung"];
                                            $Bemerkung = $_POST["Bemerkung"];

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

In der zweiten Version deines Scripts ist jetzt aber auch kein Feld mehr für $_POST['ID'], oder sehe ich das falsch?

Und noch ein HTML-Tipp: Eine id sollte eigentlich nur für ein Element vergeben werden, bei mehreren verwendet man class.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
$ID   = $_POST["ID"];
                                            $Sort   = $_POST["Sort"];
                                            $Klasse   = $_POST["Klasse"];
                                            $Grundgebühr    = $_POST["Grundgebühr"];
                                            $Übungsstunde = $_POST["Übungsstunde"];
                                            $Sonderstunde   = $_POST["Sonderstunde"];
                                            $Theorieprüfung   = $_POST["Theorieprüfung"];
                                            $Praxisprüfung    = $_POST["Praxisprüfung"];
                                            $Bemerkung = $_POST["Bemerkung"];
 
if (isset($_POST["submitButtonName"])) {
                                      $sql = "update Preise set ID = '$ID', Klasse = '$Klasse', Grundgebühr = '$Grundgebühr', Übungsstunde = '$Übungsstunde', Sonderstunde = '$Sonderstunde', Theorieprüfung = '$Theorieprüfung', Praxisprüfung = '$Praxisprüfung', Bemerkung = '$Bemerkung', Datum = '. date(Y-m-d H:i:s) .'";

Ich hoffe doch, das hast du hier nur beispielhaft geschrieben. Sonst dauert es nämlich nicht lange, bis dein Server zur Spamschleuder umfunktioniert wurde. Usereingaben dürfen niemals ungeprüft in eine SQL-Anweisung geschrieben werden.

Womit wir gleich beim nächsten Thema wären: Gehört die Frage nicht eher ins Webmasterforum?

Ach ja, und idealerweise verwendet man keine Spaltennamen mit Sonderzeichen (zum Beispiel Umlaute) oder setzt die Spaltennamen in Backticks (`) 
« Letzte Änderung: 14.07.12, 13:01:54 von MBGucky »

« C++: 10 Sekunden warten, bei tastendruck gleich weitermachen.Fehlerausgabe bei BATCH-Dateien »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Datenbank
Eine Datenbank (DBS), im englischen database, ist eine strukturierte Datensammlung und fungiert wie ein "digitales Archiv". Datenbanken dienen der effizienten Aufbewahrun...

Datenkompression
Siehe komprimieren. ...

Datenrate
Die Datenrate, oft auch als Datenübertragungsrate oder Datentransferrate bezeichnet, gibt an, wie viele Daten in einer bestimmten Zeiteinheit (meistens pro Sekunde) ...