ФорумПрограммированиеPHP для идиотов → while внутри for

while внутри for

  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 17:52

    в таблице 2 записи.
    скрипт:

    $sql = mysql_query("SELECT * FROM news");
    for($j=0;$j<2;$j++)
    {
    while($words = mysql_fetch_array($sql))
    {
    echo $j.&#39;<br>&#39;;
    }
    echo &#39;-<br>&#39;;
    }


    в результате получаем:

    0
    0
    -
    -


    что означает что while выполняется только при первой итерации цикла for. почему?
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 17:54, спустя 2 минуты 24 секунды

    Mr.Pihto, а какой результат ты ждал? Тебе надо в фор пихать mysql_fetch_array($sql) {+++36+++} и вообще, объясни зачем тебе фор?
    adw/0
  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 17:54, спустя 12 секунд

    я ждал

    0
    0
    -
    1
    1
    -
  • Cos

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 29 июля 2009 г. 17:55, спустя 24 секунды

    может потому-что он проходит весь массив $sql за первую итерацию for, в итоге при втором запуске условие while не истинно, вот оно и не выполняется
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 17:58, спустя 3 минуты 2 секунды

    при первом обращении к mysql_fetch_array, он тебе возвращает первый результат и смещает указатель на следующую строку, далее ты вызываешь еще раз, он возвращает результат и достигает конца, после этого цикл оканчивается

    все это написано в мане  {+++81+++} Выполни


    $sql = mysql_query(&quot;SELECT * FROM news&quot;);
    var_dump(mysql_fetch_array($sql));


    и покажи результат
    adw/0
  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 17:58, спустя 23 часа 59 минут 49 секунд

    спасибо. я про while не читал почти
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 17:59, спустя 50 секунд

    Mr.Pihto, дело не в while, дело в [man]mysql_fetch_array[/man]
    adw/0
  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 18:05, спустя 6 минут 19 секунд

    короче mysql_fetch_array одноразовый )
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 18:06, спустя 57 секунд

    Mr.Pihto, ты выполнишь то что я просил?)
    adw/0
  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 18:10, спустя 4 минуты 12 секунд

    уже. только 1 запись написало. или те содержимое интересно?)
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 18:12, спустя 1 минуту 59 секунд


    уже. только 1 запись написало. или те содержимое интересно?)
    угу, мне нужно содержимое…

    выполни:


    $sql = mysql_query(&quot;SELECT * FROM news&quot;);
    while($row = mysql_fetch_array($sql)){
      var_dump($row);
    }
    adw/0
  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 18:18, спустя 5 минут 56 секунд

    ?
    пустота {+++15+++} хуйня какаято. уно моменто
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 18:19, спустя 54 секунды

    ну или выполни в консоли
    SELECT * FROM news
    adw/0
  • Mr.Pihto

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 29 июля 2009 г. 18:27, спустя 8 минут 41 секунду

    гг. чето сломалось.. давай я тебе так расскажу) {+++147+++} издец. я туплю) яж снёс все)))))) {+++7+++} аааааааа) {+++51+++}

    array(12) { [0]=> string(3) &quot;225&quot; [&quot;id&quot;]=> string(3) &quot;225&quot; [1]=> string(3) &quot;asf&quot; [&quot;name&quot;]=> string(3) &quot;asf&quot; [2]=> string(7) &quot;sdf
    &quot; [&quot;short&quot;]=> string(7) &quot;sdf
    &quot; [3]=> string(7) &quot;sdg
    &quot; [&quot;full&quot;]=> string(7) &quot;sdg
    &quot; [4]=> string(5) &quot;Scout&quot; [&quot;author&quot;]=> string(5) &quot;Scout&quot; [5]=> string(10) &quot;30.07.2009&quot; [&quot;date&quot;]=> string(10) &quot;30.07.2009&quot; }
    {+++118+++} зы щас там только 1 запись
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 29 июля 2009 г. 18:29, спустя 1 минуту 28 секунд

    Ну у тебя вообще одна запись?

    сделай
    SELECT * FROM news
    и
    SELECT count(*) FROM news
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!