@Bronaz777

Создание и вывод массива PHP, картинки в массиве для слайдера?

Всем привет!Не могу разобраться как вывести в каталоге товаров изображения для слайдера предпросмотра товара.
Уже второй день маюсь с этим, не нахожу решение для создания и вывода дополнительного массива из функции products которая представлена ниже.
Возможно ли в функции products прописать создание массива для вывода img_slide или для этого лучше создать отдельную функцию?

База данных:
В таблице goods есть столбец с img_slide содержащий названия изображений [69_0.jpg|69_1.jpg|69_2.jpg|69_3.jpg|69_4.jpg]

Создаю функцию и получаю массив товаров:
function products($category, $order_db, $start_pos, $perpage){
    $query = "(SELECT goods_id, name, img, img_slide, keywords, description, anons, price, hits, goods_brands_name
                 FROM goods
                     WHERE goods_brandid = $category AND visible='1')
               UNION      
               (SELECT goods_id, name, img, img_slide, keywords, description, anons, price, hits,  goods_brands_name
                 FROM goods 
                     WHERE goods_brandid IN 
                (
                    SELECT brand_id FROM brands WHERE parent_id = $category
                ) AND visible='1') ORDER BY $order_db LIMIT $start_pos, $perpage";
    $res = mysql_query($query) or die(mysql_error()); 
    $products = array();     
    while($row = mysql_fetch_assoc($res)){
        $products[] = $row;
    }
    
    return $products;
}


case('cat'):
        // товары категории
        $category = abs((int)$_GET['category']);
        
        /* =====Сортировка===== */
        // массив параметров сортировки
        // ключи - то, что передаем GET-параметром
        // значения - то, что показываем пользователю и часть SQL-запроса, который передаем в модель
        $order_p = array(
                        'pricea' => array('от дешевых к дорогим', 'price ASC'),
                        'priced' => array('от дорогих к дешевым', 'price DESC'),
                        'datea' => array('по дате добавления - к последним', 'date ASC'),
                        'dated' => array('по дате добавления - с последних', 'date DESC'),
						'salea' => array('сначало акции', 'sale DESC'),
						'hitsed' => array('сначало скидки', 'hits DESC'),
                        'namea' => array('от А до Я', 'name ASC'),
                        'named' => array('от Я до А', 'name DESC')
                        );
        $order_get = clear($_GET['order']); // получаем возможный параметр сортировки
        if(array_key_exists($order_get, $order_p)){
            $order = $order_p[$order_get][0];
            $order_db = $order_p[$order_get][1];
        }else{
            // по умолчанию сортировка по первому элементу массива order_p
            $order = $order_p['namea'][0];
            $order_db = $order_p['namea'][1];
        }
        /* =====Сортировка===== */
        
        // параметры для навигации
        $perpage = PERPAGE; // кол-во товаров на страницу
        if(isset($_GET['page'])){
            $page = (int)$_GET['page'];
            if($page < 1) $page = 1;
        }else{
            $page = 1;
        }
        $count_rows = count_rows($category); // общее кол-во товаров
        $pages_count = ceil($count_rows / $perpage); // кол-во страниц
        if(!$pages_count) $pages_count = 1; // минимум 1 страница
        if($page > $pages_count) $page = $pages_count; // если запрошенная страница больше максимума
        $start_pos = ($page - 1) * $perpage; // начальная позиция для запроса
        
        $brand_name = brand_name($category); // хлебные крохи
        $products = products($category, $order_db, $start_pos, $perpage); // получаем массив из модели
        $meta['title'] = $brand_name[0]['brand_name'];
        if($brand_name[1]) $meta['title'] .= " - {$brand_name[1]['brand_name']}";
        $meta['title'] .= "" ;
        $meta['description'] = "{$brand_name[1]['brand_name']} ";
    break;


Вывод на .php
<?php if($products): // если есть товары категории ?>
<?php foreach($products as $product): ?>
<Здесь структура товара>
    <здесь фото кликбейт>
         <?php foreach($product['img_slide'] as $product_slider): ?> // для примера как я это представляю
              <здесь хочу сделать cлайдер предпросмотра>
        <?php endforeach; ?>
</Здесь структура товара>
<?php endforeach; ?>
<?php endif; ?>


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

UPD
Решил проблему создав еще одну функцию.
  • Вопрос задан
  • 749 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Mylistryx
База данных:
В таблице goods есть столбец с img_slide содержащий названия изображений [69_0.jpg|69_1.jpg|69_2.jpg|69_3.jpg|69_4.jpg]
Сломайте руки тому, кто так сделал и срочно переделайте. Больше скажу, если вы засветите URL где это непотребство (вышеприведенного кода) хранится - завтра-послезавтра там будет филиал порнохаба. Это я свое веское фи, с учетом именования файлов, которые 101% лягут в доступный public.
Роутинг через case - так себе идея.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы