2011-11-25 34 views
-1

我認爲這應該在理論上起作用。會嗎?更新mysql_query表單cookie

$sql = "UPDATE users SET credtis = credits+1 WHERE id=echo .($_COOKIE['credits_id']!='');"; 
if (!($result = $db->sql_query($sql))) { 
    message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql); 
} 
+0

你爲什麼不試試呢? – Bojangles

回答

1

由於多種原因,您的語法不好。試着這樣說:

$id = (!empty($_COOKIE['credits_id']) ? (int) $_COOKIE['credits_id'] : 0; 
$sql = "UPDATE users SET credtis = credits+1 WHERE id={$id}"; 
if (!($result = $db->sql_query($sql))) { 
    message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql); 
} 

另外,我假設message_die()是一些框架或API,您正在使用或您的自定義功能的一部分。否則,正確的功能是die(),它不會接受所有這些參數。

+0

?那是什麼? –

+0

鏈接: 'www.site.com/affiliate/?id = 50' make cookie: '$ credits_id ='$ _GET [「id」];'; setcookie('credits_id',$ credits_id,time()+(3600 * 0.5)); // 3600 = 1小時' 更新db: '$ query =「UPDATE users SET credits + credits-1 WHERE id ='」。mysql_real_escape_string($ _ COOKIE ['credits_id'])。''「;' – kevin

+0

Remove '$ _GET'周圍引號的不必要的(實際上是不正確的使用)。更改爲:'$ credits_id = $ _GET ['id'];' –

0

你的語法不好:P
我糾正它:
$sql = "UPDATE users SET credits += 1 WHERE id='" . (isset($_COOKIE['credits_id']) && !empty($_COOKIE['credits_id']) ? $_COOKIE['credits_id'] : 0) . "'";
下面是一個更簡單的版本:
$credits_id = 0;
if (isset($_COOKIE['credits_id']) && !empty($_COOKIE['credits_id']))
$credits_id = (int) $_COOKIE['credits_id'];
$sql = "UPDATE users SET credits += 1 WHERE id='" . $credits_id . "'";

綜觀=一部分,你要當cookie來返回一個值沒有設置?

PS:
根據「hoi」,你是荷蘭人嗎?

+0

是的,我是荷蘭人dank voor de info – kevin