Dobrý den,
mám problém (proč bych jinak psal, že), když UPDATUJI tabulku, kde přičtu nějaké číslo, tak mi to přičte 2x.
Pošlu script, na lepší jsem nepřišel, zkoušel jsem různé způsoby, udělat jinak proměnnou, uvozovky apod, ale výsledek vždy stejný. Mohl by mi, prosím, někdo poradit ? S tímto si lámu hlavu přes týden a nic mě na tohle nenapadlo.
<?
$vysledek = mysql_query("SELECT * FROM users WHERE user='$user'"); // $user je registrovaný uživatel
while ($zaznam = mysql_fetch_array($vysledek))
{
$uroven = $zaznam['uroven'];
}
$ziskane_zlato = $uroven * 10;
mysql_query("UPDATE users SET zlato = zlato + '$ziskane_zlato', zkusenost = zkusenost + '3' WHERE user='$user'");
echo "Dostáváte kolem ".$ziskane_zlato." zlata a 3 zkušenosti.";
?>
Problém je ten, že když číslo bude dejme tomu 250, tak v tabulce nebude o 250 víc, ale o 500 víc.
Předem moc děkuji za jaké koliv odpovědi,
Magnus.
Číselné hodnoty by neměly být v uvozovkách. Zvláště pokud se s nimi provádí i aritmetické operace.
Jediná věc, jak co zjistit, je vypsat si jednotlivé hodnoty.
1) co vypisuje $ziskane_zlato.
2) vyechovat sql: echo "UPDATE users SET zlato = zlato + '$ziskane_zlato', zkusenost = zkusenost + '3' WHERE user='$user'";
3) Zkusit jaké hodnoty aplikuje sql. mysql_query("SELECT zlato + '$ziskane_zlato', zkusenost + '3' FROM users WHERE user='$user'");
apod. SQL jsou od hlavy, takže si je když tak oprav.