[GastForen Programmierung/Entwicklung PHP und MySQL UPDATE geht einfach nicht

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

UPDATE geht einfach nicht

macmac
Beiträge gesamt: 394

28. Apr 2006, 17:41
Beitrag # 1 von 4
Bewertung:
(914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo zusammen

wer sieht den teufel im detail: ich arbeite immer noch an einem anmeldesystem, das auch korrekturen zulässt. nun habe ich es soweit doch geschafft, dass ich die id-übergabe bis zum korrekturformular erhalte. nun geht es ans update, doch ich bekomme es nicht hin.

es handelt sich hier um einen test, daher nur 2 felder, aber trotzdem: das update wird nicht einegtragen, hingegen das (hier auskommentierte) insert.

___________________________________________________________________________
in der formular eingabe erscheinen die in der db abgelegten daten. die sollten nun abgesendet werden können (soweit klappt es)

<?
$db=mysql_connect("localhost", "", "");
mysql_select_db("form", $db);
$result=mysql_query("SELECT * FROM form", $db);

$myrow=mysql_fetch_array($result);
?>
<?
echo "<form id='FormName' action='formkorrconf.php?id' method='POST' name='FormName'>
<input type='hidden' name='id' value='<$myrow[id]'>
<p>Name:<input type='text' name='name' value ='$myrow[name]' size='24'></p>
<p>Ort:<input type='text' name='ort' value ='$myrow[ort]' size='24'></p>
<input type='submit' name='update' value='daten updaten'>
</form>";
?>
______________________________________________________
danach geht es zum formkorrconf.php?id'


<?
$db=mysql_connect("localhost", "", "");
mysql_select_db("form", $db);

#$sql="INSERT INTO form (name, ort) VALUES ('$name','$ort')";
$sql="UPDATE form SET (id,name, ort) WHERE id=$id";


$result=mysql_query($sql);

readfile("http://computer/semester/formdruck.php?id=$id");
?>


Nur: update funktioniert nicht.

das heisst: insert setzt (natürlich) einen neuen eintrag, das update verpufft im nirvana:
W A R U M M M ?????

(Dieser Beitrag wurde von oesi50 am 28. Apr 2006, 18:32 geändert)
X

UPDATE geht einfach nicht

oesi50
  
Beiträge gesamt: 2315

28. Apr 2006, 18:33
Beitrag # 2 von 4
Beitrag ID: #226226
Bewertung:
(911 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat W A R U M M M ?????


weil vermutlich dein Parameter id nicht so übergeben wird, wie du willst.

versuche es mal mit

Code
$id = $_POST['id']; 


am Anfang.

außerdem darf in der action '?id' nicht vorkommen.


Zusätzlich solltest du deine Parameter alle prüfen, sonst ist dein Script für SQL-Injection anfällig.


als Antwort auf: [#226216]

UPDATE geht einfach nicht

macmac
Beiträge gesamt: 394

29. Apr 2006, 22:54
Beitrag # 3 von 4
Beitrag ID: #226389
Bewertung:
(893 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
habe den code

$id = $_POST['id'];

an den anfang (ich nehm mal an, des php codes – näheres steht ja nicht da) gesetzt.

geht nicht. insert setzt bloss wieder einen neuen satz, update funzt nicht.

es sollte doch möglich sein, ein formular zu senden, das einen eintrag aktualisiert und nicht neu einsetzt??

macmac


als Antwort auf: [#226226]

UPDATE geht einfach nicht

Pozor
Beiträge gesamt: 892

30. Apr 2006, 06:16
Beitrag # 4 von 4
Beitrag ID: #226399
Bewertung:
(875 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

So kann es nicht gehen:
Code
#$sql="INSERT INTO form (name, ort) VALUES ('$name','$ort')"; 
$sql="UPDATE form SET (id,name, ort) WHERE id=$id";


probiers mal so:
Code
$sql=" 
UPDATE
form

SET
name = '".addslashes($_POST['name'])."',
ort = '".addslashes($_POST['ort'])."'

WHERE id=".intval($_POST['id'])."
";


Von nix kommt nix, in der ersten sqlquery, generierst du einfach ein neuer Eintrag,
was auch absolut richtig ist -> INSERT. Wenn schon ein neuer Datensatz einfügen
auch möglich sein soll, benutze REPLACE

Bei der zweiten sqlquery mixt Du zwei verschiedene Syntax, dies ist keine gültige sqlquery,
zudem weis die DB nicht was Du eintragen möchtest, die Daten sind nicht in der Query enthalten.

ansonsten schau mal hier rein.


als Antwort auf: [#226389]
X