Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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 如何在产品中动态添加星级_Php_Jquery_Mysql_Ajax - Fatal编程技术网

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

我一直在尝试给我的产品增加星级,但我总是出错。我从mysql中调用了产品和评级数据,但它不起作用。我的代码如下,请帮助我

/*rating.php*/

//这将处理评级输入

<?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?>">&nbsp;</div>
    <?php
    }?>
    <?php
    for($i=$rem;$i>=1;$i--){?>
    <div class="rating_dis" id="<?php echo $k?>">&nbsp;</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?>">&nbsp;</div>
<?php
}?>
<?php
for($i=$rem;$i>=1;$i--){?>
<div class="rating_dis" id="<?php echo $k?>">&nbsp;</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>";