Problem mit UPDATE

mC pAiN

Erfahrenes Mitglied
N'abend allerseits,

ich habe ein Problem mit einem Update. Ich habe ein Formular, in dem Daten uas einer DB ausgegeben werden. Der User kann diese Daten ändern und auf weiter klicken. Somit soll ein Update in der Datenbank ausgeführt werden. Dieser klappt bei mir aber nicht. Hier ein Teil meines Scriptes:

PHP:
$kid = $_GET['id'];

if(isset($_POST['senden'])) {
   $name = $_POST['kaeufer_name'];
   $update1 = "UPDATE $tabelle_ku SET kunden_name='$name' WHERE kunden_id='$kid'";

   mysql_query($update1) or die(mysql_error());
}

Und das Formular dazu:

PHP:
<form action="<?php echo $PHP_SELF ?>" method="post">

<input type="Text" name="kaeufer_name" value='<?php echo "$kname"; ?>' size="30">
<input type="Submit" name="senden" value="-> WEITER">

</form>

Der Fehler:

You have an error in your SQL syntax near 'SET kunden_name='xxxxx' WHERE kunden_id=''' at line 1
 
Du musst der Anweisung noch ein 'LIMIT 1' hinzufügen:

PHP:
$kid = $_GET['id'];

if(isset($_POST['senden'])) {
   $name = $_POST['kaeufer_name'];
   $update1 = "UPDATE $tabelle_ku SET kunden_name='$name' WHERE kunden_id='$kid' LIMIT 1 ";

   mysql_query($update1) or die(mysql_error());
}
 
Wie bitte ein Limit ? Äh nein das stimmt nicht
Der Fehler ist ganz Banane

Du übergibst per Post und wertest per $_GET aus
und dann noch eine Variable die mit dem Formular nicht übergeben wird :-)
 
Ich seh hier aber nicht, das die IP im Formular übergeben wird.

Is mir grad aufgefallen.



PHP:
<form action="<?php echo $PHP_SELF."?id=".$id;?>" method="post"> 

<input type="Text" name="kaeufer_name" value='<?php echo "$kname"; ?>' size="30"> 
<input type="Submit" name="senden" value="-> WEITER"> 

</form>

oder du übergibst die ID per Hidden - dann musst du sie wie im vorherigen Beschrieben per $_POST auslesen.
 
Original geschrieben von melmager
Wie bitte ein Limit ? Äh nein das stimmt nicht
Der Fehler ist ganz Banane

Du übergibst per Post und wertest per $_GET aus
und dann noch eine Variable die mit dem Formular nicht übergeben wird :-)


Das versteh ich nicht. Das $_GET bezieht sich nicht auf das Formular. Das steht da weil ich über ein anderes Script einen Link generiere, von dem ich in diesem Script die ID die übergeben wird auslese.
Hier die Zeile im anderen Script:
PHP:
$url = "http://url.zur.seite/dir/kunden_seite.php?id=$kundenid";

Das ID hat also einen Wert, den er aber irgendwie beim klick auf "-> Weiter" wieder verliert :(
Ich habe mir nämlich mal per echo meinen SQL Befehl ausgeben lassen und dann steht da immer:

UPDATE kunden SET kunden_name='xxxxx' WHERE kunden_id=

You have an error in your SQL syntax near '' at line 1
 
PHP:
<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="hidden" name="ID" value="<?=$_GET['ID']?>">
<input type="Text" name="kaeufer_name" value='<?php echo "$kname"; ?>' size="30">
<input type="Submit" name="senden" value="-> WEITER">
</form>
<?
// [...]
$kid = $_POST['ID'];

if(isset($_POST['senden'])) {
   $name = $_POST['kaeufer_name'];
   $update1 = "UPDATE $tabelle_ku SET kunden_name='$name' WHERE kunden_id='$kid'";

   mysql_query($update1) or die(mysql_error());
}
?>

Wär meine Idee um die ID zu übergeben :)
 
@mC pAiN

Die Fehlermeldung hat eigentlich nichts damit zu tun das er die variable nicht kennt - probiers mal mal mit LIMIT 1 aus .
 
viellecith stimmen die Werte ein deine Variablen die im Query stehen auch nicht?!
Einfach mal
echo $update1;
vor dem asuführen machen, dann siehst du auch wie den Statement aussieht, was du ausführen willst.

und das LIMIT 1 ist hier Blödsinn, da es optional ist und somit bei nichtvorhandensein nicht zu einem Fehler im Statement führen kann.
 
Zurück