Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 如何存储分级系统的ID?_Php_Mysql_Store_Rating - Fatal编程技术网

Php 如何存储分级系统的ID?

Php 如何存储分级系统的ID?,php,mysql,store,rating,Php,Mysql,Store,Rating,全部 我需要一个关于如何在mysql数据库中存储评分员ID的快速帮助,以便在php脚本中使用它。喜欢 我有一个php星级脚本,我希望当有人评价一个配置文件时,他/她的id应该存储在数据库中,以检查他们是否已经投票。如何将其与其他评分员配置文件id存储在一列中。数据库结构如下 user_id | rated_value | rated_count | raters_id 此处user_id是正在评级的配置文件的id rated_value是所有投票的总值 rated_count是特定配置

全部

我需要一个关于如何在mysql数据库中存储评分员ID的快速帮助,以便在php脚本中使用它。喜欢 我有一个php星级脚本,我希望当有人评价一个配置文件时,他/她的id应该存储在数据库中,以检查他们是否已经投票。如何将其与其他评分员配置文件id存储在一列中。数据库结构如下

    user_id | rated_value | rated_count | raters_id
此处user_id是正在评级的配置文件的id rated_value是所有投票的总值 rated_count是特定配置文件的总费率数。 raters_id是对该档案进行评分的所有评分员的id

现在我想检查配置文件id是否已经使用php对配置文件进行了评级。我听说过逗号分隔的ID列表,但这是个好主意。如果我使用逗号分隔的列表,那么如果id已经被评为配置文件,我如何在php中进行检查


谢谢你的帮助

您只需要3列:

user_id | rated_value | rater_id
你必须在这里存储每一个评级,这样你甚至可以告诉用户他过去评级过多少颗星

要获得
user_id=1
的总评分,请在MySQL中使用聚合函数和分组:

SELECT 
    AVG(rated_value) as average_rating, 
    COUNT(*) AS number_of_votes 
FROM 
    user_rating 
WHERE
    user_id = 1
GROUP BY
    user_id
要检查评分者id=3rated
user\u id=1
使用简单查询

SELECT rated_value FROM user_rating WHERE user_id = 1 AND rater_id = 3

并检查它是否返回任何结果

,但我仍然可以在数据库中存储评分器id,因为在我的解决方案中有许多id将对配置文件进行评分,
user\u rating
中的每一行都是针对每一次投票的,因此如果两个用户将评分
user\u id=1
将有两行
user\u id=1
anb,这两行都将具有不同的
rater\u id
。好的,但是你能给出一个关于使用不同的表来存储rater\u id的想法吗?可能吗?是的,这是可能的,你应该能够从我的答案中找到答案。