Php 如何在产品中动态添加星级
我一直在尝试给我的产品增加星级,但我总是出错。我从mysql中调用了产品和评级数据,但它不起作用。我的代码如下,请帮助我 /*rating.php*/ //这将处理评级输入Php 如何在产品中动态添加星级,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我一直在尝试给我的产品增加星级,但我总是出错。我从mysql中调用了产品和评级数据,但它不起作用。我的代码如下,请帮助我 /*rating.php*/ //这将处理评级输入 <?php include("db.php"); $users_ip = $_SERVER['REMOTE_ADDR']; if($_REQUEST['value']) { $id = $_REQUEST['value']; $r_id = $_REQUEST['$rid']; $result = mysql_quer
<?php
include("db.php");
$users_ip = $_SERVER['REMOTE_ADDR'];
if($_REQUEST['value'])
{
$id = $_REQUEST['value'];
$r_id = $_REQUEST['$rid'];
$result = mysql_query("select users_ip from tbl_rating where users_ip='$users_ip'");
$num = mysql_num_rows($result);
if($num==0)
{
$query = "insert into tbl_rating (rating,rate_id,users_ip) values ('$id','$r_id','$users_ip')";
mysql_query( $query);
$result=mysql_query("select sum(rating) as rating from tbl_rating");
$row=mysql_fetch_array($result);
$rating=$row['rating'];
$quer = mysql_query("select rating from tbl_rating");
$all_result = mysql_fetch_assoc($quer);
$rows_num = mysql_num_rows($quer);
if($rows_num > 0){
$get_rating = floor($rating/$rows_num);
$rem = 5 - $get_rating;
}?>
<?php
for($k=1;$k<=$get_rating;$k++){?>
<div class="rating_enb" id="<?php echo $k?>"> </div>
<?php
}?>
<?php
for($i=$rem;$i>=1;$i--){?>
<div class="rating_dis" id="<?php echo $k?>"> </div>
<?php
$k++;
}?>
<div class="rating_value"><?php echo ((@$get_rating) ? @$get_rating : '0')?> /5</div>
<div class="user_message"><?php echo $rows_num?> times rated</div>
<?php
}
else
{
echo '<div class="rating_message">You already did it !</div>';
}
}
if(@$_REQUEST['show']) // show rating again after showing message
{
$result=mysql_query("select sum(rating) as rating from tbl_rating");
$row=mysql_fetch_array($result);
$rating=$row['rating'];
$quer = mysql_query("select rating from tbl_rating");
$all_result = mysql_fetch_assoc($quer);
$rows_num = mysql_num_rows($quer);
if($rows_num > 0){
$get_rating = floor($rating/$rows_num);
$rem = 5 - $get_rating;
}?>
<?php
for($k=1;$k<=$get_rating;$k++){?>
<div class="rating_enb" id="<?php echo $k?>"> </div>
<?php
}?>
<?php
for($i=$rem;$i>=1;$i--){?>
<div class="rating_dis" id="<?php echo $k?>"> </div>
<?php
$k++;
}?>
<div class="rating_value"><?php echo ((@$get_rating) ? @$get_rating : '0')?> / 5</div>
<div class="user_message"><?php echo $rows_num?> times rated</div>
<?php
}?>
数据库模式
CREATE TABLE `tbl_product` (
`pd_id` int(10) unsigned NOT NULL auto_increment,
`pd_name` varchar(100) NOT NULL default '',
`pd_image` varchar(200) default NULL,
主键(pd\u id
),
)ENGINE=MyISAM默认字符集=latin1自动增量=1007
CREATE TABLE `tbl_rating` (
`r_id` int(10) unsigned NOT NULL auto_increment,
`pd_id` int(10) unsigned NOT NULL default '0',
`rating` int(11) NOT NULL default '0',
`users_ip` varchar(200) NOT NULL default '0',
PRIMARY KEY (`r_id`),
KEY `pd_id` (`pd_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
表ratesummary是使用mysql创建视图创建的,用于加入具有tbl_评级的tbl_产品
<div class="rating_value"><?php echo ((@$get_rating) ? @$get_rating : '0')?> /5</div>
<div class="user_message"><?php echo $rows_num?> times rated</div>
/5
时报
应该是这样的:
echo "<div class='rating_value'>". ((@$get_rating) ? @$get_rating : '0')/5 ."</div>".
"<div class='user_message'>". $rows_num . "times rated</div>";
echo”“。((@$get_评级)?@$get_评级:“0”)/5。”。
"". $行数。“额定次数”;
,请问。您使用的是哪个评级插件?如果您不使用,请使用onei。我没有使用任何评级插件,只使用常规的jquery插件,即jquery-1.7.1.min.js和jquery-ui-1.7.custom.min。js@austinallover,错误是现在只调用了一个评级,而在数组中没有调用它。我喜欢在一个数组中调用评级,比如mysql\u数组,这样我就可以轻松地调用产品和评级。您可以随时在firebug中查看ajax调用的响应是什么
<div class="rating_value"><?php echo ((@$get_rating) ? @$get_rating : '0')?> /5</div>
<div class="user_message"><?php echo $rows_num?> times rated</div>
echo "<div class='rating_value'>". ((@$get_rating) ? @$get_rating : '0')/5 ."</div>".
"<div class='user_message'>". $rows_num . "times rated</div>";