簡體   English   中英

如何在添加到另一張表的同時從一張表中減去一個值?

[英]How to subtract a value from one table while adding to another table?

因此,我在同一個數據庫上運行了2個腳本,但是每個腳本都有自己的表(例如用戶,帖子等),並且它們都有積分系統。

現在,我想做的是使點之間的發送成為可能。 我創建了一個簡單的表單,其中包含要填充的名稱和要點,提交時將發送到另一個處理信息的頁面,從用戶那里取走給定的金額(將檢查會話),然后發送給給定名稱(在其他腳本中注冊)。

好的,在處理積分時,積分將被扣除(如果積分不足,則會出現“積分不足”錯誤),但積分不會記入其他帳戶。 有可能解決這個問題嗎?

代碼段如下:

// 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>";
};

?>

幾件事。

首先,我建議您訪問此站點以了解有關SQL提交的信息。 這將有助於確保您不會從一個用戶中刪除點,也不會將其添加到另一用戶中。 在您當前的代碼示例中可能會發生這種情況

http://php.net/manual/en/mysqlnd-ms.transaction.php

其次,似乎這部分正在將php變量作為文本傳遞

mysql_query(“ UPDATE用戶SET points =(points + $ pointst1)WHERE name ='$ bsname'”); 回聲“ 分數已轉移!

您可能需要將其更改為

mysql_query("UPDATE users SET points = (points + {$pointst1} ) WHERE name = {$bsname}");
echo "<b>Points tranferred!</b>"

我不是PHP程序員,因此您可以在此處檢查我的邏輯: http : //php.net/manual/zh/language.operators.string.php

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM