嗨,我有一个MySQL数据库表"points",用户可以点击一个按钮,从他们的帐户中删除一个点,他们按下的按钮有另一个用户的ID,因此他们的帐户必须增加一个.

我让它在jQuery中工作,并在Firebug中判断了变量/帖子,它确实发送了正确的数据,例如:

userid= 1 
posterid = 4

我认为问题在于我的PHP页面:

<?php


include ('../functions.php');

$userid=mysql_real_escape_string($_POST['user_id']);
$posterid=mysql_real_escape_string($_POST['poster_id']);

if (loggedin()) 
{
include ('../connection.php');
$query1 = "UPDATE `points` SET `points` = `points` - 1 WHERE `userID` = '$userid'";
$result1=mysql_query($query1);


$query2 = "UPDATE `points` SET `points` = `points` + 1 WHERE `userID` = '$posterid'";
$result2=mysql_query($query2);


if ($result1 && result2)
{
    echo "Successful";  
    return 1;
}
else
{

    echo mysql_error();
    return 0;   
}
}
?>

有什么 idea 吗?谢谢:)

推荐答案

增加/减少字段值不需要两个查询:

mysql_query("UPDATE table SET field = field + 1 WHERE id = $number");

这是一个非常有效的查询,如下所示:

mysql> describe points;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| uid    | int(11) | NO   | PRI | NULL    |       |
| points | int(11) | YES  |     | 0       |       |
+--------+---------+------+-----+---------+-------+
2 rows in set (0.05 sec)

mysql> insert into points VALUES (1,0),(2,0);
Query OK, 2 rows affected (0.14 sec)

mysql> select * from points;
+-----+--------+
| uid | points |
+-----+--------+
|   1 |      0 |
|   2 |      0 |
+-----+--------+
2 rows in set (0.05 sec)

mysql> update points set points = points+1 where uid = 1;
Query OK, 1 row affected (0.27 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from points;
+-----+--------+
| uid | points |
+-----+--------+
|   1 |      1 |
|   2 |      0 |
+-----+--------+
2 rows in set (0.00 sec)

经过测试后,你确定你能进入if (loggedin())条款吗?

我必须同意KM,如果能看到echo $query1;echo $query2;的yields 就好了

Mysql相关问答推荐

MySQL在带有特定属性值上的对象的数组的杨森对象中搜索

是否有一种方法可以在mysql中设置一列,使其自动成为该行的行号的值?

使用mysql查询获取不关注user1的user3

根据 MySql 中同一表中的多列 Select 多列

生成直到 10 的平方数序列

使用sql查找源和最终目的地

「已解决」MySQL 连接在 vb6 上出现运行时错误 -2147467259 (80004005),但在 VBA Excel 上工作

在 MySQL 中跨日期和位置计算和排序实体的共现

有没有比使用 MySQL 计划事件更好的方法来更新我的数据库表中的列?

从 R 脚本创建新的 MYSQL 数据库

如何在不使用子查询的情况下按最小日期计算新用户?

SQL从字典中的键获取值

如何使用 SQL 聚合和求和相似 Select 的值?

由于长时间操作而断开连接后,我的 sql 查询是否继续执行?

限制正则​​表达式中多字符通配符的范围

Golang Gorm没有从关联表中检索数据

PHP,MySQL 错误:列计数与第 1 行的值计数不匹配

MySQL嵌套 Select 查询?

Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?

MySQL合并两列并添加到一个新列中