За последние 24 часа нас посетили 59908 программистов и 1772 робота. Сейчас ищут 798 программистов ...

Из одного SQL запроса несколько циклов

Тема в разделе "PHP для новичков", создана пользователем dobs, 18 окт 2008.

  1. dobs

    dobs Активный пользователь

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Как можно реализовать такое:
    Допустим есть таблица blocks
    Id name position
    1 demo left
    2 nnsd right
    3 footer footer

    Как можно получить эти данные за один запрос и показать в разных частях шаблона?


    П.С. Если можно в примере

    спс
     
  2. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    сделать запрос, выбрать все, запихать все в массив (фетч_аррей) и юзать массив где надо :)
     
  3. dobs

    dobs Активный пользователь

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Дык надо разделить все по частям, к примеру там где position = left то должно показать в левой части сайта... в этом вся проблема...
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а mysql и php уже умеют отличать левую и правую части?

    давай нормальное описание
     
  5. dobs

    dobs Активный пользователь

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Есть таблица с блоками, у каждого блока есть свое положение надо сделать вывод всех блоков за один запрос к БД
    а не делать четыре типа этого:

    Код (Text):
    1. ...
    2. $getbloks = mysql_query("SELECT * FROM ".$prefix.$table_name." WHERE blok_position='left' ORDER BY position", $dbconnect);
    3. while ($rowbloks = mysql_fetch_assoc($getbloks)) {
    4. ...
    Код (Text):
    1. ...
    2. $getbloks2 = mysql_query("SELECT * FROM ".$prefix.$table_name." WHERE blok_position='right' ORDER BY position", $dbconnect);
    3. while ($rowbloks2 = mysql_fetch_assoc($getbloks2)) {
    4. ...
    Код (Text):
    1. ...
    2. $getbloks3 = mysql_query("SELECT * FROM ".$prefix.$table_name." WHERE blok_position='header' ORDER BY position", $dbconnect);
    3. while ($rowbloks3 = mysql_fetch_assoc($getbloks3)) {
    4. ...

    Код (Text):
    1. ...
    2. $getbloks4 = mysql_query("SELECT * FROM ".$prefix.$table_name." WHERE blok_position='footer' ORDER BY position", $dbconnect);
    3. while ($rowbloks4 = mysql_fetch_assoc($getbloks4)) {
    4. ...
     
  6. Riateche

    Riateche Активный пользователь

    С нами с:
    19 окт 2008
    Сообщения:
    9
    Симпатии:
    0
    Код (Text):
    1. $r = mysql_query("SELECT * FROM ".$prefix.$table_name." ORDER BY position", $dbconnect);
    2. $block1 = array();
    3. $block2 = array();
    4. $block3 = array();
    5. $block4 = array();
    6. while ($a = mysql_fetch_array($r)) {
    7.   switch ($a['block_position']) {
    8.     case 'left':
    9.       $block1[] = a$;
    10.       break;
    11.     case 'right':
    12.       $block2[] = a$;
    13.       break;
    14.     case 'header':
    15.       $block3[] = a$;
    16.       break;
    17.     case 'footer':
    18.       $block4[] = a$;
    19.       break;
    20.   }
    21. }
    22. foreach($block1 as $a) {
    23.   ...
    24. }
     
  7. dobs

    dobs Активный пользователь

    С нами с:
    23 дек 2006
    Сообщения:
    145
    Симпатии:
    0
    Блин умно ОГРОМНОЕ ВАМ СПАСИБО!!!!
     
  8. Riateche

    Riateche Активный пользователь

    С нами с:
    19 окт 2008
    Сообщения:
    9
    Симпатии:
    0
    рад помочь