Supportnet / Forum / Skripte(PHP,ASP,Perl...)
UPDATE auf ein einzelnes feld
Frage
Ich habe folgende Querys
$user = UserGetVar('uname');//*username
list($dbconn) = DBGetConn();//*dbconnection
$result = $dbconn->Execute("SELECT pid, uname FROM user_points WHERE uname=$user");
echo mysql_errno();
$sql = ("UPDATE user_points SET paidlinks=paidlinks+1 WHERE uname=user");
$result = $dbconn->Execute($sql);
echo mysql_error();
echo ""._GSOKAY." $user<br>";//*
Und dadurch sollte doch bei User ... die Punkteanzahl um eines erhöht werden
jedoch erhöht das script sämtliche Felder (user_points) um einen zähler.
Ich hoffe ihr könnt mir da helfen.
Antwort 1 von MixMax
ist wohl keine mysqldatenbank so kompliziert wie das aufgebaut ist oder ?
also ich weis ja nicht ob UserGetVar('uname') einen Namen oder eine zahl zurückgibt aber versuche es mal mit
WHERE uname='user' (mit einfachen ' )anstelle von WHERE uname=user
MfG
René
also ich weis ja nicht ob UserGetVar('uname') einen Namen oder eine zahl zurückgibt aber versuche es mal mit
WHERE uname='user' (mit einfachen ' )anstelle von WHERE uname=user
MfG
René
Antwort 2 von draack
Hi!
Falsch:
Richtig:
Ciao!
Volker.
P.S.: Ersetzen von "user" durch "$user" tät's natürlich auch - aber mit ".$user." wird der Unterschied deutlicher.
Falsch:
$sql = ("UPDATE user_points SET paidlinks=paidlinks+1 WHERE uname=user");Richtig:
$sql = ("UPDATE user_points SET paidlinks=paidlinks+1 WHERE uname='".$user."'");Ciao!
Volker.
P.S.: Ersetzen von "user" durch "$user" tät's natürlich auch - aber mit ".$user." wird der Unterschied deutlicher.
Antwort 3 von Ravinstoned
GetVar gibt den Usernamen zurück zb. halligalli und mit der Abfrage WHERE uname='".$user."'"
Passiert garnix wenn ich WHERE weglasse
schreibt das Script in alle paidlinks felder.
Warum kompliziert das ist ja nur ein kleiner Teil.
Ach ja kurze Frage zum Timestamp
der sollte sich normalerweiße bei einem Update automatisch aktuallisieren oder??
Passiert garnix wenn ich WHERE weglasse
schreibt das Script in alle paidlinks felder.
Warum kompliziert das ist ja nur ein kleiner Teil.
Ach ja kurze Frage zum Timestamp
der sollte sich normalerweiße bei einem Update automatisch aktuallisieren oder??
Antwort 4 von draack
Hi!
Wenn im Inhalt der Varibalen "$user" der Benutzername steht und dieser auch genauso (Gross-/Kleinschrebung!) in der Datenbank vorkommt, würde das auch klappen (ich gehe davon aus, dass es sich bei "uname" um ein Zeichenfeld handelt). Lass Dir doch den SQL-String einfach mal mit "echo $sql;" anzeigen - so wie ich ihn Dir vorgeschlagen habe.
Ein MySQL (ich gehe jetzt einfach davon aus, dass es sich um dieses DBMS handelt) "timestamp" sollte sich bei einem Update automatisch aktualisieren, wenn Du ihn nicht explizit in Deiner Query angibst. Genaueres dazu findest Du in der MySQL-Dokumentation.
Ciao!
Volker.
Wenn im Inhalt der Varibalen "$user" der Benutzername steht und dieser auch genauso (Gross-/Kleinschrebung!) in der Datenbank vorkommt, würde das auch klappen (ich gehe davon aus, dass es sich bei "uname" um ein Zeichenfeld handelt). Lass Dir doch den SQL-String einfach mal mit "echo $sql;" anzeigen - so wie ich ihn Dir vorgeschlagen habe.
Ein MySQL (ich gehe jetzt einfach davon aus, dass es sich um dieses DBMS handelt) "timestamp" sollte sich bei einem Update automatisch aktualisieren, wenn Du ihn nicht explizit in Deiner Query angibst. Genaueres dazu findest Du in der MySQL-Dokumentation.
Ciao!
Volker.
Antwort 5 von Ravinstoned
Du hattest recht es war ein Syntax fehler im Update befehl.
Was die Zeit angeht hattest du auch recht jetzt habe ich bloß das Problem den Timestamp auszugeben.
Ich werde aber einfach die Zeit dynamisch eintragen und somit meine weiteren Abfragen gestallten.
Auf jeden fall mal vielen Dank.
mfg
Was die Zeit angeht hattest du auch recht jetzt habe ich bloß das Problem den Timestamp auszugeben.
Ich werde aber einfach die Zeit dynamisch eintragen und somit meine weiteren Abfragen gestallten.
Auf jeden fall mal vielen Dank.
mfg
Antwort 6 von MixMax
nein! ich hab ja das $ auch übersehen - peinlich...
Antwort 7 von draack
Hi!
@MixMax: Nobody is perfect! :)
Ciao!
Volker.
P.S.: Wenn mir das nicht schon selbst x-mal passiert wäre, hätte ich's wohl auch nicht sofort gesehen ... :)
@MixMax: Nobody is perfect! :)
Ciao!
Volker.
P.S.: Wenn mir das nicht schon selbst x-mal passiert wäre, hätte ich's wohl auch nicht sofort gesehen ... :)

