От новичка до гуру: Курсы программирования на CyberDuff

как динамически добавлять звездочки к продукту

Я пытаюсь добавить звездочки к своему продукту, но постоянно получаю сообщение об ошибке. я вызывал как продукты, так и рейтинговые данные из 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
}?>

/*index.php */ //здесь я хочу повторить звездный рейтинг с продуктом рядом, но это не работает

<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,

ПЕРВИЧНЫЙ КЛЮЧ (pd_id), ) ENGINE=MyISAM DEFAULT CHARSET=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 ;

таблица ставок была создана с использованием mysql create view, чтобы присоединиться к tbl_product с tbl_rating

22.05.2012

  • SSCCE, пожалуйста. 22.05.2012
  • Какой рейтинговый плагин вы используете? Если нет, используйте один 22.05.2012
  • я не использую какой-либо рейтинговый плагин, только обычные плагины jquery, которые являются jquery-1.7.1.min.js и jquery-ui-1.7.custom.min.js 22.05.2012
  • @austinallover, ошибка в том, что сейчас вызывается только один рейтинг, и он не вызывается в массиве. я хотел бы вызывать рейтинги в массиве, таком как mysql_array, чтобы я мог легко вызывать продукты и рейтинги вместе 22.05.2012

Ответы:


1

Пожалуйста, попробуйте изменить свои возвраты, как эти строки

    <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>";
22.05.2012
  • вы всегда можете проверить в firebug ответ на ваш вызов ajax 22.05.2012
  • Новые материалы

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

    Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
    Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

    Все о кейсах: Camel, Snake, Kebab & Pascal
    В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

    Как работает дистанционное парное программирование и почему оно может изменить вашу жизнь
    Серебряная пуля от одиночества и отвлекающих факторов во время обучения программированию Независимо от того, работаете ли вы или учитесь удаленно, велика вероятность, что одиночество и..

    🔥🔥👉Питон 🆚Javascript👈🔥🔥
    Сегодня Python и Javascript потрясают мир в области ИТ. Все хотят выучить Python и Javascript, чтобы получить высокооплачиваемую работу. Различные фреймворки Python и Javascript расширяют..