Mysql Update in Selekt Problem

  • Hallo, ich habe ein kleines Problem.
    Wenn ich folgenden Code ausführe wird leider nur der letzte Datensatz in der Datenbank ausgelesen.

    Code
    $abfrage = "SELECT name FROM kat WHERE test = '".$_GET['test']."' ORDER BY name";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
    $query = "UPDATE kat Set sort = '".$_POST[$row->name]."' WHERE name = '".$row->name."' AND test= '".$_GET['test']."'";
    $update = mysql_query($query);
    }

    Auf der ausführenden Seite bekomme ich folgende Fehlermeldungen:
    Notice: Undefined index: test1 in C:\xampp\htdocs\test\test.php on line 34
    Notice: Undefined index: test2 in C:\xampp\htdocs\test\test.php on line 34
    Notice: Undefined index: test3 in C:\xampp\htdocs\test\test.php on line 34

    Dies sind die ersten 3 $row->name von $_POST[$row->name] die nicht ausgelesen werden

    test4 wird erfolgreich geupdatet.


    Wisst ihr wo genau das Problem liegt?
    Ich danke euch vielmals, da ich mich schon längere Zeit mit der Fehlerbeseitigung rumplage.

  • Was du da machst, ist nicht ganz ungefährlich, ich empfehle dir in der Doku mal unter mysql_real_escape_string nachzusehen.

    Zu deinem Problem:

    Richtig debuggen

    • Man bemerkt, dass ein Skript nicht das tut, was es soll.
    • Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    • Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    • Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    • An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    • Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    • Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    • Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    • Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


    Zitat

    Notice: Undefined index: test1 in C:\xampp\htdocs\test\test.php on line 34


    Wo ist Zeile 34 und einen Index test1 sehe ich nicht