Ändern von Datensätzen funktioniert nicht

EifelFrosch

Mitglied
Hallo zusammen,

ich habe folgendes Problem:

ich möchte Änderungen, die der Nutzer vorgenommen hat, in die DB eintragen. Alle Variablen werden korrekt übernommen (geprüft durch echo). Aber leider trägt er die Daten nicht in die DB ein, d.h. er gibt immer aus, das kein Datensatz geändert wurde. Wende ich den Befehl in der SQL-Konsole an, funktioniert es einwandfrei. Hab auch schon versucht die Hochkommes wegzulassen, hilft aber auch nicht. Er verändert den Datensatz leider nicht.

Ich habe zum Verständnis noch den Quelltext beigefügt. ich denke, dass es nur ein Kleinigkeit ist, denn er gibt auch keinerlei Fehlermeldung aus.
Die Variable $oriid wurde duch ein verstecktes Formularfeld übergeben und hat auch den richtigen Wert.

<?php

$db = mysql_connect("xxx","xxx","xxx");

echo "<br>$db<br>";
echo "<br>$oriid<br>";
echo "<br>'$neuet'<br>";
echo "<br>'$neugr'<br>";


$sqlab = "update daten set Eigentuemer = '$neuet',";
$sqlab .= "Gemarkung = '$neugm',";
$sqlab .= "Groesse_ha = '$neugr',";
$sqlab .= "where ID = $oriid";

mysql_db_query("grundstueck", $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);

?>

Vielen Dank
EF
 
Bei folgendem Code ist das Komma falsch
PHP:
$sqlab .= "Groesse_ha = '$neugr',";
Mysql erwartet hier kein Komma, deswegen wird auch nichts eingetragen.
Dies hätte dir allerdings auch mysql_error() verraten können
Am einfachsten wäre
PHP:
mysql_db_query('grundstueck', $sqllab) or die(mysql_error());
Wenn die Abfrage fehlschlägt wird gleich die dazugehörige Fehlermeldung ausgegeben

Gruß

Devil
 
Hi Devil,

vielen Dank für die Antwort.

Hab das jetzt so geändert:

$sqlab = "update daten set Eigentuemer = '$neuet',";
$sqlab .= "Gemarkung = '$neugm',";
$sqlab .= "Groesse_ha = '$neugr' "; //KEIN KOMMA
$sqlab .= "where ID = $oriid";

mysql_db_query('grundstueck', $sqllab) or die(mysql_error());

Als Fehlermeldung erhalte ich (trotz gelöschtem Komma) QUERY WAS EMPTY.

Was könnte noch falsch sein. Ich glaub ich "seh den Wald vor lauter Bäumen nicht" ;)

Grüße
EF
 
Streiche:
mysql_db_query('grundstueck', $sqllab) or die(mysql_error());
Setze:
mysql_db_query('grundstueck', $sqlab) or die(mysql_error());

Oben hatte die Variable allerdings den richtigen Namen..
 
Zurück