Jigan2

Рейтинг
46
Регистрация
13.12.2011

shopnc. Все уже сделали. Но необходимо сделать еще другое

Большое вам спасибо добрый человек. Без Вас вы бы так и не получилось. Уже третий день на одном месте топчусь. Я прописывал evaluate_goods.geval_goodsid, а надо было просто geval_goodsid.

А каким макаром теперь тут прописать все равно ошибку выдает.


//Список товаров
$fieldstr = " goods.goods_id,goods.goods_name,goods.gc_id,goods.gc_name,goods.store_id,goods.goods_image,goods.goods_store_price,
goods.goods_click,goods.goods_state,goods.goods_commend,goods.commentnum,goods.salenum,goods.goods_goldnum,goods.goods_isztc,
goods.goods_ztcstartdate,goods.goods_ztclastdate,goods.group_flag,goods.group_price,goods.xianshi_flag,goods.xianshi_discount,
goods.city_id,goods.province_id,goods.kd_price,goods.py_price,goods.es_price,
store.store_name,store.grade_id,store.store_domain,store.store_credit,store.praise_rate,store.store_desccredit,store.store_ww



//когда я здесь прописываю колонку из таблицы 'evaluate_goods' например:



,evaluate_goods.geval_goodsid




//то выдает ошибку что нет данных по этой колонке

";
$goods_list = $model_goods->getGoods(array(
'goods_id_in'=>$data***91;'goods_id_str'***93;,
'price'=>$price_interval,
'group_flag'=>$group_flag,
'xianshi_flag'=>$xianshi_flag,
'keyword'=>$search_key,
'province_id'=>(is_numeric($_GET***91;'area_id'***93;) && $_GET***91;'area_id'***93; > 0) ? $_GET***91;'area_id'***93; : '',
'goods_show'=>'1',
'goods_form'=>$goods_form,
'order'=>$order,
),$page,$fieldstr,'store',




//если здесь вместо 'store' ставлю 'evaluate_goods' и удаляю из $fieldstr все данные связанные со //'store' то все работает и данные из таблицы 'evaluate_goods' заносятся в массив, но нет данных из //таблицы 'store'



$extend);
Tpl::output('goods_list',$goods_list);
Tpl::output('show_page',$page->show());
siv1987:
добавьте еще один джоин

Посмотрите пожалуйста комментарии в коде.

Здравствуйте. Там в коде комментарии написаны.

Что на форуме нет добрых людей кто мог бы хотя бы подсказать? Помогите новичку а то два дня уже мучаюсь.

Я пытаюсь изучить php. Это подсчет голосов клиентов и вывод их в виде звезд и процентов. В общем так получилось

			

if (!empty($rating_info)){
$positive = 0;
$negative = 0;
foreach($rating_info as $v){
if($v['geval_scores'] == 1){
$positive++;
}
else{
$negative++;
}
if($negative > $positive){
if($positive > 0) {
$rating_total = ($positive / $negative) * 100;
}
else{
$rating_total = '';
}
}
else{
if($negative > 0){
$rating_total = ($negative / $positive) * 100;
}
else{
if($positive > 0) {
$rating_total = ($negative / $positive) * 100;
}
else{
$rating_total = '';
}
}
}
$v['geval_scores2'] = $rating_total;
$rating_info[$k] = $v;
}
}
Tpl::output('rating_info',$rating_info);

а в шаблоне вывел

 <?php if(!empty($output['rating_info']) && is_array($output['rating_info'])){?>

<?php foreach($output['rating_info'] as $k => $v){?>
<?php if(!empty($v['geval_scores2'])) {$rate_rating = $v['geval_scores2'];}?>
<?php }?>
<?php echo '<span class="rate-star"><em><i style=" width:';?><?php echo $rate_rating;?><?php echo '%;"></i></em></span>';?>
<?php echo $rate_rating;?><?php echo '%';?>
<?php }?>

Большое Вам спасибо за помощь без Вас бы не справился.

---------- Добавлено 05.04.2014 в 22:39 ----------

только я по моему проценты не так считаю

---------- Добавлено 05.04.2014 в 23:11 ----------

Да проценты не правильно считал. Вот так правильно мож кому пригодится.

if (!empty($rating_info)){

$positive = 0;
$negative = 0;

foreach($rating_info as $v){
if($v['geval_scores'] == 1){
$positive++;
}
else{
$negative++;
}
$otzivi = $positive + $negative;
if($positive > 0){
$rating_total = 100/$otzivi*$positive;
}
else{
$rating_total = 0;
}
$v['geval_scores2'] = $rating_total;
$rating_info[$k] = $v;
}
}
Tpl::output('goods_info',$goods_info);
Tpl::output('rating_info',$rating_info);

Делаю такой код

if (!empty($rating_info)){

foreach ($rating_info as $k => $v){

$v['geval_scores1']=0;

$v['geval_scores2'] =0;

if($v['geval_scores'] == 1){

$v['geval_scores2']++;

}

else{

$v['geval_scores1']++;

}

$rating_info[$k] = $v;

}

}

и при выводе таким кодом

<?php if(!empty($output['rating_info']) && is_array($output['rating_info'])){?>

<?php foreach($output['rating_info'] as $k => $v){?>

<?php echo $v['geval_scores2'];?>

<?php }?>

<?php }?>

Выводится на экран "1 0 1". а должно 2.

Если сделать переменные $v['geval_scores2'] другого вида то они вообще не работают. Если убрать $rating_info[$k] = $v; тоже ничего не работает.

что то не работает. не выводится на экран эта переменная

Дело в том что не понятно как идет подключение к базе движек китайский. Просто на данный момент все данные из таблицы находятся в переменной $rating_info. Вот я и изобретаю лисапед. Нужно взять из переменной данные колонки geval_scores равные 1 и -1 и занести количество 1 - в свою переменную, а -1 в свою, для дальнейшей работы с ними. Я просто новичек в php. Помогите пожалуйста не получается уже день мучаюсь.

1 234
Всего: 31