За последние 24 часа нас посетили 60264 программиста и 1810 роботов. Сейчас ищут 1674 программиста ...

1 запрос и while() сверяем

Тема в разделе "PHP для новичков", создана пользователем Your, 24 апр 2012.

  1. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Всем доброго времени!
    Опять я туплю...

    Есть запрос в базу:

    Код (PHP):
    1. $s=mysql_query("..........."); 
    В таблице есть id, ids и text.
    id - Авто инкремент
    ids - по умолчанию всегда 0.
    text - это текст...
    Так, вот расклад такой:

    Вот все мы добавили в эту таблицу 3 строчки.

    id------ids------text
    1------0------ХаляБаля1
    2------1------Это - ХалеБале1
    3------0------ХаляБаля2

    Делаем цикл
    Код (PHP):
    1. while($m=mysql_fetch_assoc($s))
    2. {
    3.       if($m['id']===$m['ids']) //пробовал и "==" и "==="
    4.       {
    5.            echo $m['text'];
    6.       }
    7. } 
    Что я только уже не пробовал писать, ну не выводит и все, хоть убей...
    Мне надо это сделать 1 запросом, без 2 =(
    Прошу, пожалуйста знающие ткните меня носом туда куда я не вижу...
    Может быть есть другой выход? Как можно такое сделать!?

    Дело в том, что он даже и не пытается проверить)))


    Это надо сделать, так, чтобы каждое подходило к своему и выводило там где скажем...
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    он у тебя ни в одной строке не равен же =)
    забава
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7

    И тут я вспомнил твой коммент =)) про $z[][]

    И вот оно блин чудо - то =)

    Код (PHP):
    1. while($m=mysql_fetch_assoc($s))
    2. {
    3.     if(!intval($m['ids']))
    4.     {
    5.         $a[$m['id']]=$m['text'];
    6.     }else{
    7.             $b[$m['ids']][]=$m['text'];
    8.         }
    9. }
    10. foreach($a as $key => $value)
    11. {
    12.     echo $value.'<br>';
    13.     foreach($b as $k => $v)
    14.     {
    15.         foreach($v as $c => $val)
    16.         {
    17.              if($key==$k)
    18.              {
    19.                    echo $val.'<br>';
    20.              }
    21.         }
    22.     }
    23.     echo'<br><br>';
    24. } 

    Спасибо, что откликнулся :DDD


    Еще рекурсию и будет шоколадно =)
     
  4. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Разве можно в качестве индексов массива использовать другие массивы? О_О

    Добавлено спустя 9 минут 58 секунд:
    Вот блин о_О

    Добавлено спустя 6 минут 1 секунду:
    У меня как-то php два года назад ругнулся, что в качестве индексов массивов нельзя использовать массивы и выражения. С тех пор не использую. Сейчас не ругается. Мистика. о_О

    Код (PHP):
    1. <?php
    2. $b[1]="о_О";
    3. $b[2]=1;
    4. $b[3]=2;
    5. $b[4]=3;
    6. $b[5]=4;
    7. echo $b[$b[$b[$b[$b[5]]]]];
    8. ?>
    Добавлено спустя 7 минут 15 секунд:
    или это в C++ он у меня ругался...
     
  5. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Нет, врешь. php ругался.

    http://www.php.ru/manual/language.types.array.html

    Может я чего не доганяю, раньше ругалось, сейчас не ругается?

    Добавлено спустя 1 минуту 5 секунд:
    Даже нотисы не выскакивают.
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    $b[$m['ids']]
    это просто индекс массива $b задан в значения члена ids массива $m
     
  7. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Это просто в качестве ключа массива $b использован массив $m, что запрещено мануалом, и что должно вызвать ошибку.
     
  8. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    $а=$m['ids'];
    $b[$а];

    а так значит не должно? :)
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты пьяный чтоле =)))))))))

    что ты здесь видишь, говори:
    $b[$m['ids']]
     
  10. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не, давай разберем. чего ты. бесплатное образование. давай.
     
  12. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Ну, типа, так можно:
    $b[0]=1;
    $a[$b[0]];
    а так нельзя:
    $b[0]=1;
    $a[$b];
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а, ну да.

    потому что $b и $b[0] это разные вещи. это примерно как написать
    $b[0]=1;
    $a[$x];
     
  14. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Это выходит потому, что $a[Array].