Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 在jqueryajax中如何计算用户对特定项目的评分数量_Php_Jquery_Ajax - Fatal编程技术网

Php 在jqueryajax中如何计算用户对特定项目的评分数量

Php 在jqueryajax中如何计算用户对特定项目的评分数量,php,jquery,ajax,Php,Jquery,Ajax,我试图统计有多少用户给特定产品打分。我的代码运行得很好,但它只是不存储项目的评级次数。例如,它存储id为17的项目被一个用户评为5,被其他用户评为4,被其他用户评为3,等等,但它不能存储像3用户对17的项目进行评级这样的总体用户 然后,我用0初始化count_rating变量,当任何用户单击rating时,它会得到增量。但它仍然显示了每种产品的count\u评级,因为我可能已经把count\u评级=count\u评级+++ 因此,当onclick函数运行时,它只是增加值。 如果有人查看我的代码并

我试图统计有多少用户给特定产品打分。我的代码运行得很好,但它只是不存储项目的评级次数。例如,它存储id为
17
的项目被一个用户评为
5
,被其他用户评为
4
,被其他用户评为
3
,等等,但它不能存储像
3
用户对
17
的项目进行评级这样的总体用户

然后,我用
0
初始化count_rating变量,当任何用户单击rating时,它会得到增量。但它仍然显示了每种产品的count\u评级,因为我可能已经把
count\u评级=count\u评级+++

因此,当
onclick
函数运行时,它只是增加值。 如果有人查看我的代码并可以编辑我的代码,那就太好了。 我所希望的是,一旦一个用户给id为
17
的项目评分,它就会增加count\u rating 1,如果另一个用户给同一个产品评分,那么count\u rating会增加到
2

$(document).on('click', '.rating',function(){
    var count_rating=0;
    count_rating= count_rating+1;
    var index = $(this).data("index");
    var business_id = $(this).data('business_id');
    var username='<?php echo $_SESSION["username"];?>';
    var useremail='<?php echo $_SESSION["useremail"];?>';
    $.ajax({
        url:"search_rating.php",
        method:"POST",
        data:{index:index,business_id:business_id,username:username,useremail:useremail,count_rating:count_rating},
        success:function(data)
        {
            if(data == 'done')
            {
                alert("Dear "+username+",You rate "+index+" out of 5 for this product");
            }
            else if(data == 'update')
            {
                alert("Dear "+username+",you updated your rating for this product");
            }
            else
            {
                alert("Dear "+username+",Sorry but there is some problem in system");
            }
        }
    });
});

});
$(文档)。在('click','rating',function()上{
var计数与评级=0;
计数额定值=计数额定值+1;
var指数=$(此).data(“指数”);
var business_id=$(this).data('business_id');
var用户名=“”;
var useremail='';
$.ajax({
url:“search_rating.php”,
方法:“张贴”,
数据:{index:index,business\u id:business\u id,username:username,useremail:useremail,count\u rating:count\u rating},
成功:功能(数据)
{
如果(数据==“完成”)
{
提醒(“亲爱的”+用户名+”,您对本产品的评分为“+索引+”;
}
else if(数据=='update')
{
提醒(“亲爱的”+用户名+”,您已更新了此产品的评级);
}
其他的
{
警报(“亲爱的”+用户名+”,抱歉,系统出现问题);
}
}
});
});
});
免责声明:这当然只是POC,在现实生活中,您的数据库结构、字段类型和其他因素可能不同,但这是您应该自己解决的问题。该样品经过测试,并按预期工作


让我们做吧! 首先使用XAMPP的PhpMyAdmin为这种情况创建一个空数据库让我们命名它
test\u ratings
,确保它使用一些UTf-8字符集,我建议
utf8\u general\u ci
并使用此代码向其添加列/索引:

创建表格评级(
uid int(11)非空自动增量,
用户名varchar(255)不为空,
业务id int(11)不为空,
useremail varchar(255)不为空,
计数单位额定值int(11)不为空,
主键(uid)
)ENGINE=InnoDB AUTO_INCREMENT=1默认字符集=utf8
注意,因为
索引
是MySQL/MariaDB中的保留关键字,所以我将其重命名为
uid
,以便在JavaScript中反映它

最后,您所需要的一切就是连接数据库,插入或更新行,并将更新后的状态返回给用户

您的
search\u rating.php
应该是这样工作的:


JavaScript是客户端站点,您需要在服务器上收集这些数据,最好是在某个数据库中。您可以告诉我如何收集服务器上的所有数据。在我的服务器(XAMPP)中,它存储的是由谁对哪个项目进行评级,但它只是不收集特定项目的所有用户数据。只需使用一些数据库引擎,很可能是MySQL,因为它包含在XAMPP中。如果您将在
search\u rating.php
script.yes中实现任何DB
INSERT
,则可能得到更详细的答案,这个脚本插入到搜索分级中我想的是应该有额外的代码,可以用productid计算分级。但是不知道怎么做。你能给我提供一些这种工作正在使用的链接吗。好的,非常感谢你的努力,并查看我的代码。但是,我自己解决了。我试了很多次,最后都解决了。我所做的是获取feom db数据,将计数放在评级上,并在会话中对其进行计数,然后在jquery中调用它。这对我很有用。@aleena很好,你正在研究自己的解决方案,而不是等待现成的解决方案。这永远是最好的办法。请确保您使用的是参数化语句,祝您好运:)@aleena,请让我理解,当用户打开页面时,您获取产品的当前评级,将其存储在会话中,然后当用户单击以对其进行评级时,您从会话中获取当前评级,增加5并存储到数据库中?首先,感谢感谢。事实上,有一个产品说明页面显示了产品的详细信息,以及有多少用户对该产品给予用户评级。为了显示产品的详细信息,我从该产品的表中获取了该产品的数据,并使用了计数(评级)作为rating_num显示有多少用户对该产品进行了评分。但问题是,我不知道如何将该计数值存储在db中,因为我是通过调用ajax通过jquery插入该值的。因此,我在会话中获得rating_num的值,并将其用于jquery部分。