Datensatzänderung mit PHP funktioiniert nicht

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

  • Datensatzänderung mit PHP funktioiniert nicht

    Hallo, ich habe ein PHP Skript, dass Daten in einer Datenbank ändern soll, nachdem ich den Datensatz zurvor in einer Tabelle ausgewählt habe. Leider funktioniert es nicht ganz, wenn ich im Datensatz bin und dort auf ändern klicke wird immer angezeigt "Der Datensatz wurde nicht geändert". Hat jemand eine Idee wo es dran liegen könnte?

    Hier die 3 Skripte:

    PHP-Code:
    <html>
    <body>
    Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
    <form action = "change_b.php" method = "post">
    <?php
       $db 
    mysql_connect("localhost""root""root");
       
    $res mysql_db_query("flatbed_rate",
       
    "select * from mileage");
       
    $num mysql_num_rows($res);  
       
       
    // Tabellenbeginn
       
    echo "<table border>";

       
    // Überschrift
       
    echo "<tr><td>Auswahl</td><td>Customer Name</td>";
       echo 
    "<td>Postal Code</td> <td>State</td>";
       echo 
    "<td>Country</td> <td>OZK</td>";
       echo 
    "<td>LAC</td> <td>MGT</td>";
       echo 
    "<td>HCK</td> <td>CHS</td></tr>";


       for (
    $i=0$i<$num$i++)
       {
          
    $Customer_No mysql_result($res$i"Customer_No");
          
    $Customer_Name mysql_result($res$i"Customer_Name");
          
    $ZIP mysql_result($res$i"ZIP");
          
    $State mysql_result($res$i"State");
          
    $Country mysql_result($res$i"Country");
          
    $OZK mysql_result($res$i"OZK");      
          
    $LAC mysql_result($res$i"LAC");      
          
    $MGT mysql_result($res$i"MGT");      
          
    $HCK mysql_result($res$i"HCK");      
          
    $CHS mysql_result($res$i"CHS");      
          
          

          
    // Tabellenzeile mit -zellen
          
    echo "<tr> <td><input type='radio' name='auswahl'";
          echo 
    " value='$Customer_No'></td> <td>$Customer_Name</td> <td>$ZIP</td>";
          echo 
    "<td>$State</td> <td>$Country</td> <td>$OZK</td>";
          echo 
    "<td>$LAC</td><td>$MGT</td><td>$HCK</td><td>$CHS</td></tr>";
       }

       
    // Tabellenende
       
    echo "</table>";

       
    mysql_close($db);
    ?>
       <p>
       <input type="submit" value="Show Dataset">
    </form>
    </body>
    </html>
    ---------------------------------------------------------------------------
    PHP-Code:

    <html>
    <body>
    <?php
    if ($auswahl)
    {
       
    $db mysql_connect("localhost""root""root");
       
    $sqlab "select * from mileage where";
       
    $sqlab .= " Customer_No = '$auswahl'";

       
    $res mysql_db_query("flatbed_rate"$sqlab);

       
    $alt_Customer_Name mysql_result($res0"Customer_Name");
       
    $alt_ZIP mysql_result($res0"ZIP");
       
    $alt_State mysql_result($res0"State");
       
    $alt_Country mysql_result($res0"Country");
       
    $alt_OZK mysql_result($res0"OZK");      
       
    $alt_LAC mysql_result($res0"LAC");      
       
    $alt_MGT mysql_result($res0"MGT");      
       
    $alt_HCK mysql_result($res0"HCK");      
       
    $alt_CHS mysql_result($res0"CHS");      
        
      
       echo 
    "Führen Sie die Änderungen durch,<p>";
       echo 
    "betätigen Sie anschließend den Button<p>";

       echo 
    "<form action = 'change_c.php' ";
       echo 
    " method = 'post'>";

       echo 
    "<input name='neu_Customer_Name' value='$alt_Customer_Name'> ";
       echo 
    " Customer Name<p>";
       echo 
    "<input name='neu_ZIP' value='$alt_ZIP'>";
       echo 
    " Postal Code<p>";
       echo 
    "<input name='neu_State' value='$alt_State'>";
       echo 
    " State<p>";
       echo 
    "<input name='neu_Country' value='$alt_Country'>";
       echo 
    " Country<p>";
       echo 
    "<input name='neu_OZK' value='$alt_OZK'>";
       echo 
    " OZK<p>";
       echo 
    "<input name='neu_LAC' value='$alt_LAC'>";
       echo 
    " LAC<p>";
       echo 
    "<input name='neu_MGT' value='$alt_MGT'>";
       echo 
    " MGT<p>";
       echo 
    "<input name='neu_HCK' value='$alt_HCK'>";
       echo 
    " HCK<p>";
       echo 
    "<input name='neu_CHS' value='$alt_CHS'>";
       echo 
    " CHS<p>";
       
       
       echo 
    "<input type='hidden' name='original_Customer_No' ";
       echo 
    " value='$auswahl'>";

       echo 
    "<input type='submit' ";
       echo 
    " value='Änderungen in DB speichern'><p>";
       echo 
    "<input type='reset'>";
       echo 
    "</form>";

       
    mysql_close($db);
    }

    else
       echo 
    "Es wurde kein Datensatz ausgewählt<p>";
    ?>
    </body>
    </html>
    -------------------------------------------------------------------

    PHP-Code:
    <html>
    <body>
    <?php
       $db 
    mysql_connect("localhost""root""root");

       
    $sqlab "update mileage set Customer_Name = '$neu_Customer_Name',";
       
    $sqlab .= "ZIP = '$neu_ZIP',";
       
    $sqlab .= "State = '$neu_State',";
       
    $sqlab .= "Country = '$neu_Country'";
       
    $sqlab .= "OZK = '$neu_OZK'";
       
    $sqlab .= "LAC = '$neu_LAC'";
       
    $sqlab .= "MGT = '$neu_MGT'";   
       
    $sqlab .= "HCK = '$neu_HCK'";
       
    $sqlab .= "CHS = '$neu_CHS'";
       
    $sqlab .= "where Customer_No == '$original_Customer_No'";

       
    mysql_db_query("flatbed_rate"$sqlab);

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

       
    mysql_close($db);
    ?>
    Zurück zur <a href="change_a.php">Auswahl</a>

    </body>
    </html>

  • #2
    PHP-Code:
    $sqlab .= "where Customer_No == '$original_Customer_No'"
    Syntaxfehler!
    Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

    Kommentar


    • #3
      Danke, aber daran lag es leider nicht.

      Kommentar


      • #4
        poste mal die Fehlermeldung:

        PHP-Code:
        mysql_db_query("flatbed_rate"$sqlab) or die(mysql_error()); 

        Kommentar


        • #5
          Die Fehlermeldung lautet:
          You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OZK = '5'LAC = '5'MGT = '5'HCK = '5'CHS = '5'where Customer_No = '5'' at line 1


          (Die 5en stehen überall für die Testeinträge)

          Kommentar


          • #6
            Du solltest schleunigst mit Debugging anfangen. Also hinter jeder mysql_query oder sonstige MySql Fkt mal
            PHP-Code:
            mysql_db_query() OR die(mysql_error().'<br />'.$sqlab); 
            schreiben und dein Error Reporting schärfer einstellen
            PHP-Code:
            error_reporting(E_ALL); 
            als erste Zeile deines Codes.
            Und Vergleiche werden in Mysql mit = und nicht mit == gemacht.

            Gruss

            tobi

            p.s. ich würde dir allgemein empfehlen mal ins Manual zum Thema MySql reinzuschmöckern. Wieso verwendest du eigentlich mysql_num_rows() und eine for Schleife ?
            PHP-Code:
            $sql "SELECT * from table";
            $res mysql_query($sql);
            $ret = array();
            while(
            $re=mysql_fetch_array($res,MYSQL_ASSOC){
              
            $ret[] = $re;

            p.s.2. Kennst du && zum Verknüpfen mehrer Bedingungen ???
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Hallo Tobi,

              ich habe jetzt das debugging mit meinen queeries und funktionen gemacht. Leider kommt keine andere Fehlermeldung. Immer du die eine, die ich schon gepostet habe.


              Zu deiner Frage:
              Ich habe mysql_num_rows() und eine for Schleife verwendet, weil es so in meinem Buch drin stand (ähnliches Beispiel).

              Gruß,
              Kirsten

              Kommentar


              • #8
                Zu deiner Fehlermeldung siehe mein p.s.2 und ab und zu ein Leerzeichen ist auch nicht schlecht

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  PHP-Code:
                  $sqlab "update mileage set Customer_Name = '$neu_Customer_Name',";
                     
                  $sqlab .= "ZIP = '$neu_ZIP',";
                     
                  $sqlab .= "State = '$neu_State',";
                     
                  $sqlab .= "Country = '$neu_Country'";
                     
                  $sqlab .= "OZK = '$neu_OZK'";
                     
                  $sqlab .= "LAC = '$neu_LAC'";
                     
                  $sqlab .= "MGT = '$neu_MGT'";   
                     
                  $sqlab .= "HCK = '$neu_HCK'";
                     
                  $sqlab .= "CHS = '$neu_CHS'";
                     
                  $sqlab .= "where Customer_No == '$original_Customer_No'"
                  $qlab mal komplett anzeigen lassen hätte gezeigt, dass ab der 3. Zuweisung das Komma fehlt.
                  Beispiel: $sqlab .= "Country = '$neu_Country'[COLOR=red],[/COLOR] ";
                  (lvorletzte und letzte natürlich ohne Komma)
                  Und ist man alt wie ein Kuh, lernt man immer noch dazu.
                  THX, LOL, ROFL & Co. -> Netzjargon auf Wikipedia

                  Kommentar


                  • #10
                    @Husti & Tobi

                    Vielen Dank für eure Hilfe. Es funktioniert jetzt.

                    Grüße,

                    Kirsten

                    Kommentar

                    Lädt...
                    X