Datensätze durch UPDATE verändern
Olli
- datenbank
0 King^Lully0 King^Lully0 Olli0 Rouven
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"
?>
$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.
mysql_query($sqlab);
Ach so, eventuell auch mal Fehlercodes ausgeben...
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'
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
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
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";