За последние 24 часа нас посетили 47617 программистов и 1806 роботов. Сейчас ищут 1047 программистов ...

Выборка из базы данных в цикле

Тема в разделе "PHP для новичков", создана пользователем rozmakc, 1 апр 2015.

  1. rozmakc

    rozmakc Новичок

    С нами с:
    6 июл 2014
    Сообщения:
    17
    Симпатии:
    0
    привет народ!

    подскажите, не могу сообразить, как мне сделать выборку из базы по параметру который в цикле выбирается))) незнаю правильно ли объяснил, поэтому покажу:

    мне нужно сделать выборку подобную:

    Код (PHP):
    1. $db->Query("SELECT id FROM users WHERE referer = 2");
    2. $ref1 = $db->FetchArray();
    3.  
    4. далее нужно вытащить:
    5.  
    6. $db->Query("SELECT * FROM users WHERE referer= $ref1'');
    7.  
    8. а не пойму как((
    cмысл думаю понятен, вообще это некая реферальная система, и нужно вытащить из базы реферала 2-ого уровня...

    Добавлено спустя 30 минут 24 секунды:
    сделал так:

    Код (PHP):
    1. $db->Query("SELECT id FROM users WHERE referer = '1'");
    2. while($ref1 = $db->FetchArray()){
    3. $reff1 = $ref1['id'];   
    4.  
    5. $db->Query("SELECT * FROM users WHERE referer = '$reff1'");
    6. while($data = $db->FetchArray()) {
    7.  
    8. блабла
    9.  
    10. }
    11. }
    12.  
    может есть вариант по красивей и правильней?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Код (Text):
    1.  
    2. select * from users where referer in (select id from users WHERE referer = '1')
     
  3. rozmakc

    rozmakc Новичок

    С нами с:
    6 июл 2014
    Сообщения:
    17
    Симпатии:
    0
    спасибо! работает!
    а как тогда 3-ий уровень вытащить? что то подобное,
    Код (PHP):
    1. select * from users where referer in (select id from users WHERE referer in (select id from users WHERE referer = '1')) 
    но это не работает(

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