Probleme mit UPDATE (bei mysql)

stega

Erfahrenes Mitglied
Hi,
ich habe ein Script, das soll in einer DB ein Feld erhöhen und zwar genau um 1.

dazu habe ich folgende Codezeile:
Code:
mysql_query("UDPATE user SET written=written+1 WHERE user='".$_SESSION["id"]."'");
das Feld, das 'upzudaten' ist, heißt written. Leider macht das Script aber nix :(

Was is da falsch? Ich habe jegliche Möglichkeiten ausgetestet (mit 'written' ...) aber nie funktioniert was. beim query gibt er aber das richtige aus, nur in der DB wird nix verändert :confused:

weiß jmd ne Lösung?
 
Ich bin nicht sicher ob man gleich updaten kann.
Probier es doch mal so:
PHP:
$results=mysql_query("SELECT * FROM user WHERE user='".$_SESSION['id']."'");
$result=mysql_fetch_assoc($results);
$result['written']++;
mysql_query("UDPATE user SET written='".$result['written']."' WHERE user='".$_SESSION["id"]."'");
 
Hi,
das Script solll bestimmt dafür sein, um die Logins einer Person zu erhöhen?
Versuch mal das:
PHP:
$result = mysql_query("SELECT * FROM user WHERE user=".$_SESSION["id"]."'");

$logindat = mysql_fetch_array($result);

$new = $logindat[written] +1;

mysql_query("UPDATE user SET written='$new' WHERE user=".$_SESSION["id"]."'");
Hoffe es hat dir geholfen!
Snowowl
 
nein, hab jetzt beides ausprobiert, aber er erhöht nix...
es ist fat ein Login-System: Ich habe ein Webblog und da soll der User, der einen Artikel geschrieben hat, bei written dann +1 gezählt bekommen und in der Userauflistung weiter oben erscheinen.
Aber er macht net +1 :-(

an was kann das jetzt noch liegen?
 
Wie sieht denn Dein Quelltext jetzt aus?

Nachtrag: @Snowowl:
PHP:
$new = $logindat[written] +1;
sollte eher so aussehen:
PHP:
$new = $logindat['written'] +1;
denn bei Deiner Variante ist written eine Konstante. PHP ist nur so "gnaedig" die nicht-existente Konstante written als String zu werten.
 
PHP:
$results = mysql_query("SELECT * FROM user WHERE id='".$_SESSION["id"]."'");
$result = mysql_fetch_assoc($results);
$result['written']++;
mysql_query("UDPATE user SET written='".$result['written']."' WHERE id='".$_SESSION["id"]."'");
wie von euch vorgeschlagen, nur dass id anstelle von user hinmusste (hatte mich vorhin vertippt)

Edit (Dennis Wronka): Ich war mal so frei die entsprechenden Tags fuer PHP-Code zu setzen.
 
es passiert gar nix, in der Session_id steht wa drin (sonst würde auch die Seite gar net erst angezeit) und wenn ich den query mal ausgeben lass, dann stimmt er auch soweit, also " SET written='1' WHERE id='1'. :eek:
 
Ja stimmt, vielleicht hat er ja was an den Sessions falsch gemacht?
Hast du am anfang der Seite vielleicht das vergessen?
PHP:
<?php session_start(); ?>
Schick doch mal bitte dne ganzen Quellcode ;)
 
Mach das
PHP:
mysql_query("UDPATE user SET written='".$result['written']."' WHERE id='".$_SESSION["id"]."'");
mal so
PHP:
mysql_query("UDPATE user SET written='".$result['written']."' WHERE id='".$_SESSION['id']."'") or die(mysql_error());
 
Zurück