所以,我有兩個腳本運行在相同的分貝,但每個都有自己的表(如用戶,帖子等等),他們有點系統。如何在添加到另一個表時從一個表中減去一個值?
現在,我想要做的是使發送點從一個到另一個。 我已經創建了一個名稱和要填充的點的簡單表單,並且比提交時發送到另一個可處理信息的頁面要遠離用戶(將檢查會話)併發送給它到給定的名字(在另一個腳本中註冊)。
好的,當它處理的點被拿走(或者如果他們沒有足夠的積分給出「不夠分」的錯誤),但積分不記入其他帳戶。 有沒有可能解決這個問題?
這裏去的代碼片段:
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mods/points');
$pointst1 = request_var('pointst', 0);
$bsname1 = request_var('bsname', 0);
if ($user->data['user_points'] < $pointst1){
echo "<b>You don't have enough points</b>";
}
else {
remove_points($user->data['user_id'], $pointst1);
mysql_query("UPDATE users SET points = (points + $pointst1) WHERE name = '$bsname'");
echo "<b>Points tranferred!</b>";
};
?>
不要在新的應用程序中使用'mysql_query',請使用[PDO](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-using -phps-pdo-for-database-access /)。另外,請仔細閱讀[適當的SQL轉義](http://bobby-tables.com/),然後再做一些嚴重的傷害。 – tadman 2013-04-04 20:40:25
如果只有這些,您應該按名稱查找第二個用戶,然後在更新查詢中使用用戶標識而不是名稱。您還應該將您的$ pointst1包裝在intval()中以強制執行一個數字,然後在更新之前檢查零或負數。 – Revent 2013-04-04 21:01:28
如果你在每次請求後調用它,那麼'mysql_error'是什麼意思? http://php.net/manual/en/function.mysql-error.php – didierc 2013-04-04 21:06:52