如何在添加到另一个表时从一个表中减去一个值?

时间:2013-04-04 20:39:00

标签: php mysql sql

所以,我有两个脚本在同一个数据库上运行,但每个脚本都有自己的表(如用户,帖子等),并且它们有点系统。

现在,我想要做的是使点从一个点发送到另一个点。 我已经创建了一个带有名称和点的简单表单,以便填充它,并且当提交时将发送到另一个处理信息的页面,从用户那里取出给定的数量(将检查会话)并将其发送给给定的名称(在其他脚本中注册)。

好的,当它处理时,点被带走(或者如果他们没有足够的积分则给出“不够点”错误),但这些点不会记入另一个账户。 是否有可能解决这个问题?

以下是代码段:

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

?>

1 个答案:

答案 0 :(得分:0)

一些事情。

首先,我建议您在处理SQL Commits时查看此站点。这将有助于确保您不会从一个用户删除点,并且不将其添加到其他用户。您当前的代码示例中可能会发生这种情况

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

其次,似乎这部分是将php变量作为文本传递

  

mysql_query(“UPDATE用户SET points =(points + $ pointst1)WHERE name ='$ bsname'”);   echo“转移的点数!

您可能想将其更改为

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

我不是PHP程序员,所以你可以在这里查看我的逻辑: http://php.net/manual/en/language.operators.string.php

希望有所帮助