За последние 24 часа нас посетили 58009 программистов и 1845 роботов. Сейчас ищут 1058 программистов ...

Помогите с запросом

Тема в разделе "PHP для новичков", создана пользователем flipper1001, 19 дек 2011.

  1. flipper1001

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

    С нами с:
    20 мар 2009
    Сообщения:
    6
    Симпатии:
    0
    Есть одна таблица первым запросом получаю данные записываю их в массив. можно ли вторым запросом сделать выборку так чтобы 1 из значений небыло равно ни одному значению из массива?
     
  2. Denis.Y

    Denis.Y Активный пользователь

    С нами с:
    8 авг 2011
    Сообщения:
    145
    Симпатии:
    0
    Адрес:
    Россия, Самарская область
    "можно всё, главное не палиться!" (с)

    сформулируйте понятнее пожалста вопрос, что за таблица, что за данные по какому условию.
    если я правельно понял, то всё можно уместить в один запрос, легко.

    итак, сёдня понедельник, а мысли читаем со среды, иногда))

    что за таблица? что за данные в ней и в каких полях хранятся и какие именно записи (то беж условие выборки) должны попасть в первый массив и во второй.

    тут вам куча народу предлагает варианты реализации..
     
  3. flipper1001

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

    С нами с:
    20 мар 2009
    Сообщения:
    6
    Симпатии:
    0
    тавлица

    id bigint(20) No None auto_increment
    iduser bigint(20) No None
    idfrend bigint(20) No None
    date datetime No None
    resolution tinyint(1)

    Первый запрос SELECT * FROM `frends` WHERE iduser = '$userid'
    во втором запросе должна делаться выборка по полю idfrend = '$userid' но туда недолжны попасть iduser которые были в первом запросе
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    PHP:
    1. <?php
    2. // ...
    3. $sql = "SELECT * FROM `frends` WHERE `iduser` = '$userid' OR `idfriend` = '$userid'";
    4. $res = mysql_query($sql) or exit(mysql_error());
    5. $user = array();
    6. $friends = array();
    7. if(mysql_num_rows($res) > 0) {
    8.     while($row = mysql_fetch_assoc($res)) {
    9.         if($row['iduser'] == $userid)
    10.             $user[] = $row;
    11.         else
    12.             $friends[] = $row;
    13.     }
    14. }
    15. echo('<pre>');
    16. echo("User:\n");
    17. print_r($user);
    18. echo("Friends:\n");
    19. print_r($friends);
    20. echo('</pre>');
    21. // ...
    22. ?>
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Что ты хочешь запросом сделать?... Ты вообще зачем-то о двух запросах пишешь.
     
  6. flipper1001

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

    С нами с:
    20 мар 2009
    Сообщения:
    6
    Симпатии:
    0
    первый запрос вегда один а второй в зависимости стоит галка или нет то всех выводит то не всех
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    PHP:
    1. <?php
    2. //...
    3. // Это галка (checkbox)
    4. $selectFriends = isset($_REQUEST['select_friends']) ? 'TRUE' : 'FALSE';
    5.  
    6. $sql = "SELECT * FROM `frends` WHERE
    7.     `iduser` = '$userid' OR ($selectFriends AND `idfriend` = '$userid')";
    8. // ...
    9. ?>
     
  8. flipper1001

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

    С нами с:
    20 мар 2009
    Сообщения:
    6
    Симпатии:
    0
    да мне первого вырианта вполне хватило спасибо
     
  9. flipper1001

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

    С нами с:
    20 мар 2009
    Сообщения:
    6
    Симпатии:
    0
    только сейчас понял что все не правильно =). Этот скрипт просто выводит одних и вторых а надо то выводить так чтобы если в $user = array(); пользователь есть то в $friends = array(); его засовывать уже не надо.