gpt4 book ai didi

php - 简化了 JQuery 和 PHP 星级评分

转载 作者:行者123 更新时间:2023-11-29 03:10:01 25 4
gpt4 key购买 nike

编辑:有问题的插件位于 here .

这里的 PHP 初学者使用了一个 JQuery 星级评分片段,并且已经让它完美地工作了。我的问题是它目前配置为计算和显示许多评级的平均值(对于公共(public)应用程序)。我正在尝试简化插件,以便它允许设置个人评级(就像在 iTunes 中对自己的歌曲进行评级一样)。用户可以更新他们的评级,但永远不会存在部分星级。我已经多次破坏插件试图让它工作,但无济于事。 mysql数据库存在如下:

CREATE TABLE IF NOT EXISTS `pd_total_vote` (
`id` int(11) NOT NULL auto_increment,
`desc` varchar(50) NOT NULL,
`counter` int(8) NOT NULL default '0',
`value` int(8) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

如果我能让它按照我想象的方式工作,我就不需要 countervalue 列,只需要一个 INT 列,它的值介于1 和 5。目前 counter 累积投票数,而 value 聚合评级。然后使用(值/计数器)*20(百分比)显示星星。 PHP 如下(原文):

<?php

// connect to database

$dbh=mysql_connect ("localhost", "user", "pass") or die ('Cannot connect to the database');
mysql_select_db ("thenally_pd",$dbh);

if($_GET['do']=='rate'){
rate($_GET['id']);
}else if($_GET['do']=='getrate'){

// get rating

getRating($_GET['id']);
}

// get data from table

function fetchStar(){
$sql = "select * from `pd_total_vote`";
$result=@mysql_query($sql);
while($rs = @mysql_fetch_array($result,MYSQL_ASSOC)){
$arr_data[] = $rs;
}
return $arr_data;
}

// function to retrieve

function getRating($id){
$sql= "select * from `pd_total_vote` where id='".$id."' ";
$result=@mysql_query($sql);
$rs=@mysql_fetch_array($result);
// set width of star
$rating = (@round($rs[value] / $rs[counter],1)) * 20;
echo $rating;
}

// function to set rating

function rate($id){
$text = strip_tags($_GET['rating']);
$update = "update `pd_total_vote` set counter = counter + 1, value = value + ".$_GET['rating']." where id='".$id."' ";
$result = @mysql_query($update);
}

?>

感谢您指出正确的方向,

迈克

最佳答案

我不确定,因为我无法访问您正在使用的评级系统,但只是看一眼您所拥有的,我想您可以将计数器设置为 1(如果删除它会破坏 jQuery 评级系统)并更新值由该人提供,因此当您获取它时,他们只会看到它们的值(value)(确保值(value)不能超过 5)。这样,如果该值设置为 5,那么它将显示 5,因为它没有找到其他评级....(根据我的理解)您还必须添加一个用户 ID,以便您知道要获取哪些人的评级(因为你想要它个人)。这取决于应用程序对特定数据库设计的依赖程度。

关于php - 简化了 JQuery 和 PHP 星级评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com