Anzeige

UPDATE in Mysql klappt nicht so ganz

UPDATE in Mysql klappt nicht so ganz | PSD-Tutorials.de

Erstellt von Zeiflex, 08.08.2008.

  1. Zeiflex

    Zeiflex Noch nicht viel geschrieben

    Dabei seit:
    24.09.2005
    Beiträge:
    27
    UPDATE in Mysql klappt nicht so ganz
    Hallo Leute,
    habe mal wieder eine Frage. In meinem Script klappt alles, bis auf das Eitnragen in der Datenbank. Die Tabelle Config hat folgende Spalten id, parameter, wert, name, beschreibung.
    Und nun das Script.

    PHP:
    1.  
    2. <?php include("auth.php");
    3. if (!isset($_POST["sub"])) {
    4.     echo "<form action=\"$_SERVER[PHP_SELF]?seite=optionen\" method=\"post\">\n";
    5.     echo "<table width=\"90%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">\n";
    6.     $optionen_sql = "SELECT * FROM config";
    7.     $optionen_result = mysql_query($optionen_sql);
    8.     while ($row = mysql_fetch_assoc($optionen_result)) {
    9.         echo "<tr>\n";
    10.         echo "<td width=\"20%\">$row[name]</td>\n";
    11.         echo "<td><input type=\"text\" name=\"$row[parameter]\" value=\"$row[wert]\" />\n";
    12.         echo "</tr>\n";
    13.         echo "<tr>\n";
    14.         echo "<td>&nbsp;</td><td class=\"opt_beschreibung\">$row[beschreibung]</td>\n";
    15.         echo "</tr>\n";
    16.     }
    17.     echo "</table>\n";
    18.     echo "<input type=\"submit\" name=\"sub\" value=\"Speichern\" />";
    19.     echo "</form>\n";
    20.    
    21. } else {
    22.  
    23.     $optionen_sql2 = "SELECT * FROM config";
    24.     $optionen_result2 = mysql_query($optionen_sql2);
    25.     while ($row = mysql_fetch_assoc($optionen_result2)) {
    26.         mysql_query("UPDATE config SET wert='".$_POST["$row[parameter]"]."' WHERE parameter=$row[parameter]");
    27.     }
    28.     echo "<a href=\"$_SERVER[PHP_SELF]?seite=optionen\">Weiter</a>";
    29. }
    30.  
    31. ?>
    32.  
    in der auth.php ist nur ne abfrage ob die Session noch gestartet ist.

    Hoffe ihr könnt mir helfen.

    MfG
    Andre
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    UPDATE in Mysql klappt nicht so ganz
    AW: UPDATE in Mysql klappt nicht so ganz

    Du trägst nirgendwo was ein, in deinem Script ist kein INSERT-Statement. Du postest auch keine Fehlermeldungen (die du natürlich nicht bekommst, weil du mysql_error() nicht benutzt).
    Ohne Fehlermeldung kann von nur erraten werden, was überhaupt falsch laufen könnte, und ich hab meine Glaskugel gerade verlegt.


    Duddle
     
    #2      
  3. progfrog

    progfrog programming & 3d

    1
    Dabei seit:
    13.06.2007
    Beiträge:
    288
    Geschlecht:
    männlich
    Software:
    Blender, Eclipse, Photoshop
    Kameratyp:
    Nikon D60
    UPDATE in Mysql klappt nicht so ganz
    AW: UPDATE in Mysql klappt nicht so ganz

    Wie ich dem Titel des Threads entnehmen meint er wohl den in der fünftletzten Zeile ausgeführten UPDATE Befehl.

    Allerdings hat Duddle recht das man ohne Fehlermeldung nicht viel mit dem Skript anfangen kann.
    Was funktioniert denn nicht. Bekommst du Parser Errors oder ist im SQL etwas falsch. Wenns nicht bei PHP liegt bau mal eine Mysql Fehlerabfrage ein.
    So in diese Richtung:
    PHP:
    1. <?php
    2. $sql = 'SELECT etwas FROM etwas_anderes'; // ...
    3. mysql_query($sql) OR die('Es trat ein MysqlFehler auf.<br/>'.mysql_error().'<br/>Query<br/>'.$sql;
    4.  
    5. //Oder eben so
    6. if(!mysql_query($sql)) die('...');
    7. ?>
    Hoffe mal dich auch zum denken angeregt und nicht wieder zuviel einfach so serviert habe ;)

    Gruß progfrog
     
    #3      
  4. Zeiflex

    Zeiflex Noch nicht viel geschrieben

    Dabei seit:
    24.09.2005
    Beiträge:
    27
    UPDATE in Mysql klappt nicht so ganz
    AW: UPDATE in Mysql klappt nicht so ganz

    Hallo,
    okay vllt ist Eintragen der Falsche ausdruck aber bei dem UPDATE wird ja auch was in die Datenbank eingetragen. progfrog hat da vollkommen recht. Ich habe einfach mal mysql_error() benutzt. Und siehe da, habe den Fehler gefunden und jetzt funktionierts. Hätte ich auch echt selber drauf kommen mal den Fehler anzeigen zu lassen. Schuldigung..
    Danke für die Tipps ;)

    MfG
    Andre
     
    #4      
  5. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    UPDATE in Mysql klappt nicht so ganz
    AW: UPDATE in Mysql klappt nicht so ganz

    hallo Andre,
    nun bin ich doch ein bisschen neugierig,
    ich hab zwar nur flüchtig draufgesehen, aber der Ausdruck .$_POST["$row[parameter]"].
    scheint mir als eine Fehlerquelle in Frage zu kommen. Wie hast du es gelöst?
     
    #5      
  6. Zeiflex

    Zeiflex Noch nicht viel geschrieben

    Dabei seit:
    24.09.2005
    Beiträge:
    27
    UPDATE in Mysql klappt nicht so ganz
    AW: UPDATE in Mysql klappt nicht so ganz

    Ne daran lag es jetzt nicht direkt. Das problem war die WHERE clausel, weil das Feld so nciht einduetig bestimmt werden konnte.... was komisch war, weils eigentlich hätte klappen müssen. Jetzt nehme ich die ID, und habe noch ein paar sicherheitsfunktionen eingebaut. Sieht jetzt so aus und klappt einwandfrei
    PHP:
    1.  
    2. while ($row = mysql_fetch_assoc($optionen_result2)) {
    3.         $wert = addslashes(htmlspecialchars($_POST["$row[id]"]));
    4.         mysql_query("UPDATE config SET wert='$wert' WHERE id=$row[id]");
    5.     }
    6.  
     
    #6      
  7. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    UPDATE in Mysql klappt nicht so ganz
    AW: UPDATE in Mysql klappt nicht so ganz

    Sieht jetzt so aus und klappt einwandfrei
    PHP:
    1.  
    2. while ($row = mysql_fetch_assoc($optionen_result2)) {
    3.         $wert = addslashes(htmlspecialchars($_POST["$row[id]"]));
    4.         mysql_query("UPDATE config SET wert='$wert' WHERE id=$row[id]");
    5.     }
    6.  
    [/quote]
    tja, da lernt man nicht aus. ich hätte gedacht, dass der zugriff auf $row[id] grundsätzlich als string so $row['id'] geschrieben werden müsste...
     
    #7      
  8. purzel

    purzel Guest

    UPDATE in Mysql klappt nicht so ganz
    #8      
x
×
×