Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2015, 13:30   #1
ruzzik
 
Регистрация: 09.02.2010
Сообщений: 6
По умолчанию Вывод данных framework Yii

Здравствуйте! Не могу сделать вывод всех позиций значений характеристик ('val'), выводится только одно значение. При проверке print_r($result); выдаёт Array ( [0] => bbbb ) . Подскажите пожалуйста в чём тут ошибка. print_r($res); выдаёт Array ( [0] => aaaa ) Array ( [0] => bbbb ) Array ( [0] => 1111 ) Array ( [0] => 2222 ) Array ( [0] => 3333 )
Controller
PHP код:
public function getFilters($id_cat$arrIdGoods)
    {
        if (
$id_cat) {
            
$level Categories::model()->findByPk($id_cat)->level;
         
            if (
$level >= 2) {
                
                
$str=' ';
                  if(isset(
$arrIdGoods) and !empty($arrIdGoods) and count($arrIdGoods)!=0){
                    
$str=' and gf.id_goods IN ('.join(', '$arrIdGoods).') ';
                  }
                  
                  
$str=' ';
                   
$arrF Yii::app()->db->createCommand('SELECT f.name as name, f.type as type, f.filter_type as filter_type, f.id as f_id, 
                                                        f.title as title, f.description as description, f.color as color, gf.val as val
                                                        FROM goods_features as gf 
                                                        LEFT JOIN features as f ON gf.id_features = f.id  
                                                        where f.id in (SELECT id_features FROM cat_features where id_cat='
.$id_cat.')'
                                                           
.$str.
                                                        
'group by  gf.val, f.name,f.type,  f.filter_type, f.id, 
                                                        f.title, f.description, f.color    
                                                        order by f.id'
)->queryAll();
                
$arrC Yii::app()->db->createCommand('SELECT COUNT(gf.val) as cnt,gf.val as val
                                                        FROM goods_features as gf
                                                        LEFT JOIN features as f ON gf.id_features = f.id
                                                        where f.id in (SELECT id_features FROM cat_features where id_cat='
.$id_cat.')
                                                        group by  gf.val'
)->queryAll();
                
                   
                
$arr2=array();
                   
$arr3=array();
                   foreach (
$arrC as $arr) {
                       foreach (
unserialize($arr['val']) as $val) {
                           if(
array_key_exists($val,$arr3))
                               
$arr3[$val]=$arr3[$val]+$arr['cnt'];
                           else
                               
$arr3[$val]=$arr['cnt'];
                       }
                   }
              
//     print_r($arr3);
              
$arr1=array();

                   foreach (
$arrF as $arr){
                       
$cnt=0;
                       
$res=unserialize($arr['val']);
                    
                       
                       
$arr['val']=array();
                    
                    
$arr1[$arr['f_id']]=$arr;
                    
$arr1[$arr['f_id']]['val']=array_merge($arr1[$arr['f_id']]['val'] ,$res);
                   }
                
                   
//print_r($arr1);
                
return array('filter'=>$arr1,'count'=>$arr3);
            }
            return 
false;
        }
        return 
false;
    } 

Последний раз редактировалось ruzzik; 15.05.2015 в 17:33.
ruzzik вне форума Ответить с цитированием
Старый 15.05.2015, 13:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Покажи код. Данные из базы берутся?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2015, 13:43   #3
ruzzik
 
Регистрация: 09.02.2010
Сообщений: 6
По умолчанию

Это выводящий файл:
Views
PHP код:
<?php elseif ($item['filter_type'] == 2): ?>
        <div class="row-fluid">
            <div class="filter_head"><i
                    class="filter_icon <?php echo (isset($arrFilters) and count($arrFilters) != and array_key_exists($item['f_id'], $arrFilters)) ? '' 'a' ?>"
                    name="filter_group_<?php echo $item['f_id']; ?>"></i><?php echo $item['title']; ?>
                <?php if ($item['description'] != null && $item['description'] != ""): ?>
                    <a
                        rel="tooltip"
                        style="font-size: 15px; font-weight: normal"
                        title="<?php echo $item['description']; ?>">
                        ?
                    </a>
                <?php endif; ?>
            </div>

            <div
                class="filter-group hide-more <?php echo (isset($arrFilters) and count($arrFilters) != and array_key_exists($item['f_id'], $arrFilters)) ? '' 'hide' ?>"
                id="filter_group_<?php echo $item['f_id']; ?>">
                <?php
              
              
                $counts 
array_count_values($item['val']);
                
                
$result $item['val'];
                 
                
print_r($result);
                
               
                
?>
                <?php 
                
foreach ($result as $res): ?>
                    <?php
                    $res_c 
$res;
                    
$val $res;
                    
$checked '';
                    if (isset(
$arrFilters) and count($arrFilters) != and array_key_exists($item['f_id'], $arrFilters)) {
                        if (
array_key_exists($res_c$arrFilters[$item['f_id']]))
                            
$checked 'checked';
                    }

                    
$color "#FAFAFA";
                    
$cnt=$count[$res_c];
                    if (
strpos($res'|')) { // color filter
                        
list($value$color) = explode("|"$res);
                        
$res $value;
                        
$val $color;
                        if (!empty(
$res_c)) {
                            
?>
                            <input type="checkbox" <?php echo $checked?>
                                   name="filter[<?php echo $item['f_id']; ?>][<?php echo $res_c?>]"
                                   id="<?php echo $res '_' $item['f_id']; ?>" class="regular-checkbox"/>
                            <label style=" <?php if($color=='#xxxxxx') echo'background-image:url(/img/color-multy.png); background-position:center'; else echo'background-color:'.$color?>"
                                   for="<?php echo $res '_' $item['f_id']; ?>"
                                   title="<?php echo mb_convert_case($resMB_CASE_LOWER"UTF-8") . " (" $cnt ")"?>">
                            </label>
                        <?
                        
}
                    } else { 
// not color filter
                        
?>
                        <?php if (!empty($res_c)): ?>
                            <div class="row-fluid">
                                <div class="span10">
                                    <input type="checkbox" <?php echo $checked?>
                                           name="filter[<?php echo $item['f_id']; ?>][<?php echo $res_c?>]"
                                           id="<?php echo $res '_' $item['f_id']; ?>" class="regular-checkbox"/>
                                    <label style=" <?php if($color=='#xxxxxx') echo'background-image:url(/img/color-multy.png); background-position:center'; else echo'background-color:'.$color?>"
                                           for="<?php echo $res '_' $item['f_id']; ?>">

                                    </label>
                                <span>
                                    <?php echo mb_convert_case($resMB_CASE_LOWER"UTF-8") . " (" $cnt ")"?>
                                </span>
                                </div>
                            </div>
                        <?php endif; ?>

                    <?php
                    
}
                endforeach; 
?>
            </div>
            <?php if (count($result) > 4): ?>
                <!--                    <a name="filter_group_--><?php //echo $item['f_id']; ?><!--"-->
                <!--                       class="all more --><?php //echo (isset($arrFilters) and count($arrFilters) != 0 and array_key_exists($item['f_id'], $arrFilters)) ? '' : 'hide' ?><!--">-->
                <!--                        Больше…</a>-->
            <?php endif; ?>
ruzzik вне форума Ответить с цитированием
Старый 17.05.2015, 16:30   #4
ruzzik
 
Регистрация: 09.02.2010
Сообщений: 6
По умолчанию

Спасибо всем!! Тема закрыта!!!
ruzzik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод в див имен из бд и при нажатии вывод в отдельный див дополнительной информации об этом имени / PHP и базы данных looni123 JavaScript, Ajax 3 03.04.2014 21:26
Вывод данных в excel - массивом данных sergey113 Помощь студентам 4 22.08.2011 17:16
вывод данных pav00 Microsoft Office Access 10 02.03.2011 23:57
Как сделать вывод данных после всего ввода данных. Donatello Общие вопросы C/C++ 6 16.01.2011 16:32
Вывод данных Vitaliy3009 Общие вопросы Delphi 3 10.10.2009 16:15