PHP mysql星级
我正在遵循找到的教程,但我似乎不知道如何从db中的收视率中填充星星。基本上,我希望在用户提交他/她自己的评分之前,显示当前的评分以及显示多少评分。 我不想动态构建我需要评级的产品列表,我只需要发布的id和每个data-id生成的评级计数 --更新我可以发布评级,但我需要为每个产品分配一个id。我可以只得到一个值的值,但我想我需要分配一个var,这样我就可以为任何给定的产品提取它们 产品:PHP mysql星级,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我正在遵循找到的教程,但我似乎不知道如何从db中的收视率中填充星星。基本上,我希望在用户提交他/她自己的评分之前,显示当前的评分以及显示多少评分。 我不想动态构建我需要评级的产品列表,我只需要发布的id和每个data-id生成的评级计数 --更新我可以发布评级,但我需要为每个产品分配一个id。我可以只得到一个值的值,但我想我需要分配一个var,这样我就可以为任何给定的产品提取它们 产品: <div class="store-item-rating text-warning rate-ex1
<div class="store-item-rating text-warning rate-ex1-cnt" id ="1">
<div id="1" class="rate-btn-1 rate-btn"></div>
<div id="2" class="rate-btn-2 rate-btn"></div>
<div id="3" class="rate-btn-3 rate-btn"></div>
<div id="4" class="rate-btn-4 rate-btn"></div>
<div id="5" class="rate-btn-5 rate-btn"></div>
</div>
<div class="store-item-rating text-warning rate-ex2-cnt" id ="2">
<div id="1" class="rate-btn-1 rate-btn"></div>
<div id="2" class="rate-btn-2 rate-btn"></div>
<div id="3" class="rate-btn-3 rate-btn"></div>
<div id="4" class="rate-btn-4 rate-btn"></div>
<div id="5" class="rate-btn-5 rate-btn"></div>
</div>
JS
$(function(){
$('.rate-btn').hover(function(){
$('.rate-btn').removeClass('rate-btn-hover');
var therate = $(this).attr('id');
for (var i = therate; i >= 0; i--) {
$('.rate-btn-'+i).addClass('rate-btn-hover');
};
});
$('.rate-btn').click(function(){
var therate = $(this).attr('id');
var dataRate = 'act=rate&product_id=<?php echo $product_id; ?>&rate='+therate; //
$('.rate-btn').removeClass('rate-btn-active');
for (var i = therate; i >= 0; i--) {
$('.rate-btn-'+i).addClass('rate-btn-active');
};
$.ajax({
type : "POST",
url : "inc/ajax.php",
data: dataRate,
success:function(){}
});
});
});
$(函数(){
$('.rate btn').hover(函数(){
$('rate btn').removeClass('rate-btn-hover');
var therate=$(this.attr('id');
对于(var i=therate;i>=0;i--){
$('.rate btn-'+i).addClass('rate-btn-hover');
};
});
$('.rate btn')。单击(函数(){
var therate=$(this.attr('id');
var dataRate='act=rate&product_id=&rate='+therate//
$('rate btn').removeClass('rate-btn-active');
对于(var i=therate;i>=0;i--){
$('.rate btn-'+i).addClass('rate-btn-active');
};
$.ajax({
类型:“POST”,
url:“inc/ajax.php”,
数据:数据速率,
成功:函数(){}
});
});
});
伯爵
<div class="box-result-cnt">
<?php
$query = mysql_query("SELECT * FROM tbl_rating");
while($data = mysql_fetch_assoc($query)){
$rate_db[] = $data;
$sum_rates[] = $data['rate'];
}
if(@count($rate_db)){
$rate_times = count($rate_db);
$sum_rates = array_sum($sum_rates);
$rate_value = $sum_rates/$rate_times;
$rate_bg = (($rate_value)/5)*100;
}else{
$rate_times = 0;
$rate_value = 0;
$rate_bg = 0;
}
?>
<hr>
<h3>The content was rated <strong><?php echo $rate_times; ?></strong> times.</h3>
<hr>
<h3>The rating is at <strong><?php echo $rate_value; ?></strong> .</h3>
<hr>
<div class="rate-result-cnt">
<div class="rate-bg" style="width:<?php echo $rate_bg; ?>%"></div>
<div class="rate-stars"></div>
</div>
<hr>
</div>
该内容被评为次。
评级为。
假设您只能对1个产品进行评级(正如演示所做的那样)。要获得当前评级,您可以选择所有评级并将其平均:
Current rating: SELECT AVG(rate) FROM tbl_rating
Number of ratings: SELECT COUNT(*) FROM tbl_rating
现在,如果您需要了解当前用户的评级:
SELECT rate FROM tbl_rating WHERE user_id = $userIPAdress
如果您在tbl\u rating
表中添加product\u id
列以对多个产品进行评级,只需添加WHERE子句:
Current rating: SELECT AVG(rate) FROM tbl_rating WHERE product_id = $productId
Number of ratings: SELECT COUNT(*) FROM tbl_rating WHERE product_id = $productId
假设您只能对1个产品进行评级(正如演示所做的那样)。要获得当前评级,您可以选择所有评级并将其平均:
Current rating: SELECT AVG(rate) FROM tbl_rating
Number of ratings: SELECT COUNT(*) FROM tbl_rating
现在,如果您需要了解当前用户的评级:
SELECT rate FROM tbl_rating WHERE user_id = $userIPAdress
如果您在tbl\u rating
表中添加product\u id
列以对多个产品进行评级,只需添加WHERE子句:
Current rating: SELECT AVG(rate) FROM tbl_rating WHERE product_id = $productId
Number of ratings: SELECT COUNT(*) FROM tbl_rating WHERE product_id = $productId
我已经添加了product_id的附加列,因为我注意到了同样的事情。我遇到的真正问题是调用每个产品的评级。所以,基本上,产品1和产品2是静态的,并且有ID,但是我在调用index.php中的评级和填充星星时遇到了问题-似乎缺少了一些东西,一些php参数,我要么看不到,要么太累了,看不到…它不适用于最后2个查询吗?它们会返回特定产品的平均评级(=星级数)以及评级数。如果您想要所有产品的这些值,您可以这样做:按产品id从tbl_评级组中选择平均值(费率)
和按产品id从tbl_评级组中选择计数(*)
第一个实际起作用-请参阅我上面的代码更新。我现在唯一的问题是为每个产品分配一个id,然后可以调用。我已经为product_id添加了额外的列,正如我注意到的一样。我遇到的真正问题是调用每个产品的评级。所以,基本上,产品1和产品2是静态的,并且有ID,但是我在调用index.php中的评级和填充星星时遇到了问题-似乎缺少了一些东西,一些php参数,我要么看不到,要么太累了,看不到…它不适用于最后2个查询吗?它们会返回特定产品的平均评级(=星级数)以及评级数。如果您想要所有产品的这些值,您可以这样做:按产品id从tbl_评级组中选择平均值(费率)
和按产品id从tbl_评级组中选择计数(*)
第一个实际起作用-请参阅我上面的代码更新。我现在唯一的问题是为每个产品分配一个id,然后可以调用它。你能告诉我们你到目前为止都尝试了什么吗?你能告诉我们你到目前为止都尝试了什么吗?