Вытаскивание информации из БД

Тема в разделе "PHP", создана пользователем sidor, 29 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sidor

    sidor

    Регистр.:
    7 июн 2006
    Сообщения:
    220
    Симпатии:
    14
    Есть каталог товара. в нем есть поле "category" - категория товара.
    Используются классы, но суть понятна.
    PHP:
     $sql_result $db->query "SELECT * FROM " PREFIX "_shop ORDER BY posi ASC" );
    Теперь нужно вывести в разных местах товары РАЗНЫХ категорий. Тоесть вариант вида
    PHP:
    while ( $row $db->get_row $sql_result ))
    {

    bla bla bla

    }
    не покатит, т.к. он выведет всеможно впринципе сделать несколько запросов к БД, но это же будет ***уя себе запросов :(
    помогите пожалуйста.
     
  2. VictorVi

    VictorVi Прохожие

    Если я прально понял, то сделай промежуточный массив ориентированный относительно категорий типа $tmpVar[cat1][good1] и работай уже с ним, а не с кучей запросов.
     
  3. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Приведите дампы таблиц ..по идее у вас должно быть как минимум две таблицы
    1 таблица категорий и разделов ...либо только категорий
    2 таблица товаров которыен связаны по ID (ключами) с таблицей категорий
    тогда никаких проблем с выводом того что нужно не возникнет...
     
  4. [Гилыч]

    [Гилыч] Постоялец

    Регистр.:
    5 авг 2008
    Сообщения:
    57
    Симпатии:
    17
    стрктуру БД в студию
    а вообще самый просто вариант сформировать массив массивов, из запроса, в котором ключом будет id категории
    $cat[idCategory] = array();
    PHP:
    $html ='';
    foreach(
    $cat[<id нужной категории>] as $k=>$val){
        
    $html .= 'Товар: '.$val.'<br>';
    }
    echo 
    $html;
     
  5. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    Используй ajax, закидывай продукты в массив на javascript, и выводи что нужно, как например:
    http://ru.wowhead.com/?search=%D0%BC%D0%B5%D1%87

    т.е. обращение к бд одно, нагрузки на сервер почти никакой, всё происходит в браузере (сортировка, постраничный вывод и т.п.).
     
  6. tarantas

    tarantas Постоялец

    Регистр.:
    22 мар 2008
    Сообщения:
    75
    Симпатии:
    14
    К примеру :

    Код:
    for ( $i = 0; $row = $db->get_row ( $sql_result ); $i++ )
    {
    $cat[ $row['category'] ] .= $row['tovar'].", ";
    }  
    И потом просто в нужных местах скрипта использовать $cat[категория]
     
  7. t0os

    t0os

    Регистр.:
    21 окт 2007
    Сообщения:
    284
    Симпатии:
    36
    sidor, делается это следующим образом.

    Для начала раздели логику программы от шаблона - сначала все выборки в массив, а потом уже вывод в темплейт.
    Например, так

    Ниже уже код шаблона:
    Вроде как все понятно.
     
    sidor нравится это.
  8. sidor

    sidor

    Регистр.:
    7 июн 2006
    Сообщения:
    220
    Симпатии:
    14
    ммм...забыл закрыть тему. я уже и забыл как решил проблему, но решил :D
    по-моему все-таки как t0os.

    тема закрыта
     
Статус темы:
Закрыта.