Здравствуйте. При использовании цикла while он выводит найденные записи, кроме самой первой. Вот пример: Код (Text): $isforums = mysql_query("SELECT * FROM forums ORDER BY id DESC LIMIT 5"); $forums = mysql_fetch_array($isforums); while($forums = mysql_fetch_array($isforums)){ echo '<figure> <figcaption> <strong>'.$forums['forum_name'].'</strong> <span>'.$forums['forum_descr'].'</span> <em>'.$forums['forum_type'].'</em> <a href="ss.html" class="opener"></a> </figcaption> <a href="ss.html" class="thumb"><img src="'.$forums['forum_screenshot'].'"/></a> </figure>';} В таблице 20 записей. Вместо 5 записей, установленных в sql запросе, он выводит 4, да и те не так, как нужно. Выводя, он пропускает самую первую запись (первая строка в таблице) и выводит остальные 4. Подскажите, пожалуйста, где ошибся.
Вставлю 5 копеек, так как статья в топе по выдаче по запросу while php не выводит первая строка. Вообщем, mysqli_fetch_assoc не терпит повторного вызова от одного mysqli_query(). У меня был файл подключен через include, а в нём были: PHP: $get_build = mysqli_query(connect(),"SELECT * FROM `build` WHERE `build_owner` = '".$_SESSION['uid']."'")or die(mysqli_error()); $build = mysqli_fetch_assoc($get_build); А в первичном файле: PHP: while($row = mysqli_fetch_assoc($get_build)){ ... На что он пропускал первую строку. Используя while($row = $build){ ... вообще зацикливался. ---------- В моём случае проблема решилась так, я создал новый запрос к базе. PHP: $build_realty = mysqli_query(connect(),"SELECT * FROM `build` WHERE `build_owner` = '".$_SESSION['uid']."'")or die(mysqli_error()); while($row = mysqli_fetch_assoc($build_realty)){.... --- п.с. Я человек, могу быть где то не прав)
Да, ты не прав. Ты сделал запрос, записал ресурс результата, выхватил первый кортеж, потом в цикле получил остальные кортежи и думаешь "а где, матьево, первый кортеж?". А потом ты удаляешь лишнее выхватывание первого кортежа и теперь в цикле оказываются все кортежи. Типа всё поправил. В отношении же бесконечного цикла всё тоже логично - результат присвоение переменной всегда будет истинным, если исходная переменная имеет логическую истину. И такое присвоение всегда будет давать истину для работы цикла. Бесконечно.