PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : insert into where...klappt nicht. php-syntax falsch?



Andislack
07-01-2003, 00:47
hi!
ich habe ein problem mit einem sql eintrag
es sollen die verschiedenen variablen eingetragen werden, aber nur da, wo der eingeloggte benutzername (Variable bname) gleich dem benutzernamen (spaltenname bname) in der db ist.
die variable wird korrekt übergeben, doch leider wird nix in die tabelle geschrieben und es kommt auch keine fehlermeldung!?


$eintrag = "INSERT INTO t_email
(vorname, name, email, strasse, plz, stadt, land, tel) WHERE bname = '$bname'
";

wenn ich die WHERE bedingung rauslasse, dann wird alles eingetragen.

hat jemand ne idee wo da der fehler ist? liegt das an der php-syntax oder ist der sql-befehl falsch?(dann würde ich um verschiebung ins sql-forum bitten :-))

danke gruss andi

mehlvogel
07-01-2003, 08:12
Der SQL Befehl ist grundsätzlich erstmal falsch, da man in einem INSERT Befehl nicht WHERE verwenden kann. Um so etwas zu machen, wie du es willst (also anscheinend Daten zu überschreiben) muss man den UPDATE Befehl benutzen z.B. :



UPDATE t_email (vorname,_name,_email,_strasse,_plz,_stadt,_land,_ tel)_WHERE_bname_= '$bname'


Dann sollte das wie gewünscht klappen.

Gaert
07-01-2003, 18:15
Hallo!



...es kommt auch keine fehlermeldung...


Wenn du wieder mal vor so einem Problem stehst, dann würde ich mal die Funktion mysql_error() bemühen!

Das nächste mal einfach mal ein


echo mysql_error();

unter das Query was nicht funktioniert, und schon wird vieles klarer!

Andislack
07-01-2003, 19:51
hi'!
erstmal danke für eure hilfe!

@gaert
das mit dem
echo mysql_error();
war ne echt gute idee, doch ich bin noch am lernen und wusste nix davon ;)

@mehlvogel
ich hab jetzt meinen eintrag so gemacht:


$eintrag = "UPDATE t_email set vorname = '$vorname' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
$eintrag = "UPDATE t_email set name = '$name' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
$eintrag = "UPDATE t_email set strasse = '$strasse' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
$eintrag = "UPDATE t_email set plz = '$plz' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
$eintrag = "UPDATE t_email set stadt = '$stadt' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
$eintrag = "UPDATE t_email set email = '$email' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
$eintrag = "UPDATE t_email set tel = '$tel' WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);
";

und so funktioniert es.
hab deinen vorschlag nicht ganz verstanden...
brauch ich bei deinem vorschlag dann nicht für jede spalte einen eigene eintrag-aufruf?


vielen dank und gruss andi

Gaert
07-01-2003, 19:58
Das hier ist besser:


$eintrag = "UPDATE t_email SET
vorname = '$vorname',
name = '$name',
strasse = '$strasse',
plz = '$plz',
stadt = '$stadt',
email = '$email',
tel = '$tel'
WHERE bname = '$bname'";
$eintragen = mysql_query($eintrag);