Olli: Datensätze durch UPDATE verändern

Hallo, ich stehe vor folgendem Problem und zwar versuch ich jetzt schon über eine Std. lang, einen Datensatz aus einer Datenbank zu verändern bzw. bearbeiten. So wird das Skript auch ausgeführt, allerdings werden die Werte nicht geändert und ich erhalte immer die Meldung, das der Datensatz gleich geblieben ist.

$vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    $bau = $_POST["Bau"];
    $etage = $_POST["Etage"];
    $raum = $_POST["Raum"];
    $ip = $_POST["IP"];
    $mac = $_POST["MAC"];
    $mail = $_POST["Mail"];
    $telefon = $_POST["Telefon"];
    $bemerkung = $_POST["Bemerkung"];
    $datum = $_POST["Datum"];
    $aktion = $_POST["Aktion"];
    $bearbeiter = $_POST["Bearbeiter"];
    $anrede = $_POST["Anrede"];

echo $vorname;
    echo "</br>";
    echo $nachname;
    echo "</br>";
    echo $bau;
    echo "</br>";
    echo $etage;
    echo "</br>";
    echo $raum;
    echo "</br>";
    echo $ip;
    echo "</br>";
    echo $mac;
    echo "</br>";
    echo $mail;
    echo "</br>";
    echo $telefon;
    echo "</br>";
    echo $bemerkung;
    echo "</br>";
    echo $datum;
    echo "</br>";
    echo $aktion;
    echo "</br>";
    echo $bearbeiter;
    echo "</br>";
    echo $anrede;
    echo "</br>";

$sqlab = "UPDATE benutzer SET Datum = '$datum' ,
    Aktion = '$aktion',
    Bearbeiter = '$bearbeiter',
    bau = '$bau',
    Etage = '$etage',
    Raum = '$raum',
    IP = '$ip',
    MAC = '$mac',
    Anrede = '$anrede',
    Vorname = '$vorname',
    Nachname = '$nachname',
    Mail = '$mail',
    Telefon = '$telefon',
    Bemerkung = '$bemerkung',
    WHERE IP = '$ip'";

echo $sqlab;

mysql_query($sqlab);
    $num = mysql_affected_rows();
    if($num>0)
      echo "Der Datensatz wurde geändert<p>";
    else
      echo "Der Datensatz ist gleich geblieben"
?>

  1. $sqlab = "UPDATE benutzer SET Datum = '$datum' ,
        Aktion = '$aktion',
        Bearbeiter = '$bearbeiter',
        bau = '$bau',
        Etage = '$etage',
        Raum = '$raum',
        IP = '$ip',
        MAC = '$mac',
        Anrede = '$anrede',
        Vorname = '$vorname',
        Nachname = '$nachname',
        Mail = '$mail',
        Telefon = '$telefon',
        Bemerkung = '$bemerkung',
        WHERE IP = '$ip'";

    echo $sqlab;

    mysql_query($sqlab);
        $num = mysql_affected_rows();
        if($num>0)
          echo "Der Datensatz wurde geändert<p>";
        else
          echo "Der Datensatz ist gleich geblieben"
    ?>

    Die WHERE-Bedingung wird vermutlich nie erfüllt. Lass Dir unbedingt mal das SQL ausgeben und exekutiere es ggf. manuell.

    1. mysql_query($sqlab);

      Ach so, eventuell auch mal Fehlercodes ausgeben...

    2. Die WHERE-Bedingung wird vermutlich nie erfüllt. Lass Dir unbedingt mal das SQL ausgeben und exekutiere es ggf. manuell.

      Wie kann man es den erreichen das die Bedingung erfüllt wird?

      folgendes wird bei echo $sqlab ausgegeben

      UPDATE benutzer SET Datum = 'Wert' , Aktion = 'Wert', Bearbeiter = 'Wert', bau = 'Wert', Etage = 'Wert', Raum = 'Wert', IP = 'Wert', MAC = 'Wert', Anrede = 'Wert', Vorname = 'Oliver', Nachname = 'Wert', Mail = 'Wert', Telefon = 'Wert', Bemerkung = 'Wert', WHERE IP = 'Wert'

    3. Hello,

      $sqlab = "UPDATE benutzer SET Datum = '$datum' ,
          Aktion = '$aktion',
          Bearbeiter = '$bearbeiter',
          bau = '$bau',
          Etage = '$etage',
          Raum = '$raum',
          IP = '$ip',
          MAC = '$mac',
          Anrede = '$anrede',
          Vorname = '$vorname',
          Nachname = '$nachname',
          Mail = '$mail',
          Telefon = '$telefon',
          Bemerkung = '$bemerkung',

      du (Olli) hast da ein Komma zwischen der letzten Spalte und dem WHERE-Kriterium verloren...

      WHERE IP = '$ip'";

      Die WHERE-Bedingung wird vermutlich nie erfüllt. Lass Dir unbedingt mal das SQL ausgeben und exekutiere es ggf. manuell.

      FULL ACK! Und zusätzlich: prüfe mit mysql_error, ob die Ausführung des Statements Fehler verursacht hat.

      MfG
      Rouven

      --
      -------------------
      Death is nature's way of telling you to slow down.
      1. du (Olli) hast da ein Komma zwischen der letzten Spalte und dem WHERE-Kriterium verloren...

        Vielen Dank das war es gewesen, das Komma, ich hab noch 4 mal drüber gesehen und es einfach nicht gesehen.

        Gruß
        Olli

      2. echo $begrüßung;

        FULL ACK! Und zusätzlich: prüfe mit mysql_error, ob die Ausführung des Statements Fehler verursacht hat.

        Kleine Korrektur: Ob die Ausführung Fehler verursacht hat, sieht man am Rückgabewert der jeweiligen mysql_*-Funktion. Zu jeder Funktion erläutert das PHP-Handbuch den Rückgabewert im Gut- und im Fehlerfall. Darauf sollte man reagieren. Den Fehlertext kann man dann mit mysql_error() abfragen.

        echo "$verabschiedung $name";