Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL中的简单评分系统_Php_Mysql_Ranking - Fatal编程技术网

Php MySQL中的简单评分系统

Php MySQL中的简单评分系统,php,mysql,ranking,Php,Mysql,Ranking,假设我正在运行一个小型投票计数器产品。这些值存储在数据库“content”中,其中一行包含投票数(“count”),我还有一行名为“rank”,我如何自动求和这些值,以便不必在PHP中遍历每一个值,从而导致脚本速度大大降低?类似的内容(取决于确切的表结构)应: UPDATE item SET rating = (SELECT count(*) FROM rates WHERE type 'positive') - (SELECT count(*) FROM rates WHERE

假设我正在运行一个小型投票计数器产品。这些值存储在数据库“content”中,其中一行包含投票数(“count”),我还有一行名为“rank”,我如何自动求和这些值,以便不必在PHP中遍历每一个值,从而导致脚本速度大大降低?

类似的内容(取决于确切的表结构)应:

UPDATE item SET rating = 
   (SELECT count(*) FROM rates WHERE type 'positive') - 
   (SELECT count(*) FROM rates WHERE type 'negative');

有关更多信息,请查看。

如果表中有类似的结构

项目 带字段:名称、id、计数

您可以简单地执行以下操作:

id为$id的项目中的向上投票

UPDATE item SET count = count + 1 WHERE id='$id';
UPDATE item SET count = count - 1 WHERE id='$id';
id为$id的项目中的否决票

UPDATE item SET count = count + 1 WHERE id='$id';
UPDATE item SET count = count - 1 WHERE id='$id';
count将存储投票总数

如果要检查是否避免每个用户/ip进行一次以上的投票,则应将每个单独的投票存储在另一个表中,并在发送以前的查询之前检查此传统表中的非重复投票