2012-05-22 43 views
0

我一直在嘗試將星級評分添加到我的產品中,但我不斷收到錯誤消息。我打過電話從MySQL產品和等級的數據,但它不是working..my代碼如下請好心幫我如何將星級評分動態添加到產品中

/*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 
}?> 

/*的index.php */ //這裏我想呼應STA R級隨產品的一面,但它不工作

<script type="text/javascript" src="js/jquery-1.2.6.min.js"></script> 

<script type="text/javascript"> 
// <![CDATA[ 
$(document).ready(function(){ 
$('#loader').hide(); 
$('#inner').children().click(function(){ 
    var a = $(this).attr("id"); 
    $.post("rating.php?value="+a, { 
    }, function(response){ 
     $('#inner').fadeOut(); 
     $('#inner').html(unescape(response)); 
     $('#inner').fadeIn(); 
     setTimeout("hideMesg();", 2000); 
    }); 
}); 
}); 

function hideMesg(){ 

$('.rating_message').fadeOut(); 
$.post("rating.php?show=1", { 
}, function(response){ 
    $('#inner').html(unescape(response)); 
    $('#inner').fadeIn('slow'); 
}); 
} 
// ]]> 
</script> 

<?php 
      $resultm=mysql_query("select * from ratesummary GROUP BY pd_id"); 
      $resultb=mysql_query("select sum(rating) as rating from ratesummary GROUP BY pd_id"); 
    $rowb=mysql_fetch_array($resultb); 

$rating=$rowb['rating']; 

$quer = mysql_query("select rating from ratesummary GROUP BY pd_id"); 
$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; 
} 
else 
{ 
$rem = 5; 
} 
while($rowx=mysql_fetch_array($resultm)) 

{ 
       echo '<div class="ratebox"> 
       <p class=product_name>#'.$rowx['pd_id'].'</p> 
       <p class=product_name>'.$rowx['pd_name'].'</p> </div>'  
       ; 
      } 

?> 



<div id="container"> 

    <div id="outer"> 
     <div id="inner"> 
      <?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> 
     </div> 
    </div> 

</div> 

CSS樣式使用

#container{ 
     font-family:Arial, Helvetica, sans-serif; 
     width:440px; 
    } 
    #customForm{ 
     padding: 0 10px 10px; 
    } 
    .user_message{ margin-top:12px; color:#006600; font-family:Georgia, "Times New Roman", Times, serif; font-size:14px; font-weight:bold;} 
    #customForm label{ 
     display: block; 
     color:#000000; 
     float:left; 
     width:130px; 
     font-size:14px; 
     line-height: 1.4em; 
    } 
    #customForm input{ 
     width: 220px; 
     float:left; 
     padding: 4px; 
     text-shadow: 0 -1px 1px rgba(0,0,0,0.25); 
     border-bottom: 1px solid rgba(0,0,0,0.25); 
     font-size: 11px; 
     border: 1px solid #CCCCCC; 
    } 
    input#button{ 
     width: 244px; 
     float:left; 
     padding: 4px; 
     text-shadow: 0 -1px 1px rgba(0,0,0,0.25); 
     border-bottom: 1px solid rgba(0,0,0,0.25); 
     font-size: 11px; 
     border: 1px solid #CCCCCC; 
    } 
    #outer{ width:150px; padding:6px; 
      background:#FFFFFF; 
      height:18px; 
      margin-top:12px; 
      color:#fff; 
      margin-bottom:5px; 
      font-weight:bold; 
      -moz-border-radius: 6px; 
      font-size:12px; 
      -webkit-border-radius: 6px; 
      -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.6); 
      -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.6); 
      text-shadow: 0 -1px 1px rgba(0,0,0,0.25); 
      border-bottom: 1px solid rgba(0,0,0,0.25);} 

    #outer .rating_enb { 
      width:16px; padding:1px; 
      height:18px; float:left; 
      background:#CC0000; 
      margin-right:4px; 
      cursor:pointer; 
     } 
    #outer .rating_dis { 
      width:16px; padding:1px; 
      height:18px; float:left; 
      cursor:pointer; 
      background:#CCCCCC;    
      margin-right:4px; 
     } 
    #outer .rating_dis:hover, #outer .rating_enb:hover {background:#009933; } 

    #outer .rating_value{ color:#003399; padding-top:2px; font-size:14px} 
    #outer .rating_message{ color:#003399; padding-top:2px; font-size:14px} 

數據庫架構

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, 

PRIMARY KEY(pd_id), )ENGINE = MyISAM的默認字符集= latin1 AUTO_INCREMENT = 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_rating

+1

[SSCCE](http://SSCCE.org),請。 –

+0

您使用的是哪種評分插件?如果您不是,請使用一個 – Dhiraj

+0

有哪些錯誤? – AustinAllover

回答

0

請試着改變你的回報,這樣的詩句

<div class="rating_value"><?php echo ((@$get_rating) ? @$get_rating : '0')?> /5</div> 
    <div class="user_message"><?php echo $rows_num?> times rated</div> 

應該是這個樣子加入tbl_product創建:

echo "<div class='rating_value'>". ((@$get_rating) ? @$get_rating : '0')/5 ."</div>". 
      "<div class='user_message'>". $rows_num . "times rated</div>"; 
+0

您可以隨時在螢火蟲中檢查ajax調用的響應 – Bob

相關問題