[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с While
D4Kiss
Итак суть проблемы, через While я вывожу комментарии которые перед этим выбираю в бд.

$query = mysql_query("SELECT * FROM `comm` WHERE `id` = '$id'");
$myrow = mysql_fetch_array($query);

И вывожу:
while($myrow = mysql_fetch_array($query))
{
echo "$myrow["text"]";
}


Но выводит на 1 комментарий меньше чем было выбрано.
(Т.е если в бд комментариев 2 то выводится 1).

Заранее спасибо smile.gif



Спустя 48 минут, 33 секунды (18.06.2010 - 20:32) Nikitian написал(а):
$myrow = mysql_fetch_array($query); после mysql_query уберите

Спустя 8 минут, 30 секунд (18.06.2010 - 20:40) D4Kiss написал(а):
Ладно теперь полная проблема.
С $myrow = mysql_fetch_array($query); становится -2 комментария.
Значит -1 идёт где-то в другом месте.
Вот код полностью. (Начиная с $query = mysql_query("SELECT * FROM `comm` WHERE `id` = '$id'"); )

мешает.....
Тогда как мне проверить чему равна mysql_fetch_array($query) без потери единицы.

Да проблема решилась убиранием проверки.
Теперь вопрос как мне проверить чему равна mysql_fetch_array($query) без потери единицы.

//Решение

xD я дурак и надо лучше читать мануалы).

if ($query == "") //Верно!

Спустя 16 минут, 46 секунд (18.06.2010 - 20:57) tomash написал(а):
D4Kiss
Сначала задайте себе вопрос "Зачем проверять то, что лежит в mysql_fetch_array($query)?"

Спустя 1 минута, 11 секунд (18.06.2010 - 20:58) Ice написал(а):
Цитата
if ($query == "") //Верно!


if ( empty( $query ) ) //Верно! 

Спустя 7 минут, 2 секунды (18.06.2010 - 21:05) tomash написал(а):
Ice
А зачем?

Спустя 35 минут (18.06.2010 - 21:40) Ice написал(а):
Красивее:) Да и работать будет даже тогда, когда просто написано в скрипте: $query, в то время как первый вариант напишет, что переменная не определена.

Спустя 11 минут, 29 секунд (18.06.2010 - 21:52) tomash написал(а):
Ice
Я не о том! Зачем проверять $query?

Спустя 23 минуты, 42 секунды (18.06.2010 - 22:15) Winston написал(а):
Не так:
Цитата (D4Kiss @ 18.06.2010 - 18:43)
while($myrow = mysql_fetch_array($query))

А так:
while($myrow = mysql_fetch_assoc($query))


Не так:
Цитата (D4Kiss @ 18.06.2010 - 18:43)
echo "$myrow["text"]";

А так:
echo $myrow['text'];


Цитата (D4Kiss @ 18.06.2010 - 18:43)
"SELECT * FROM `comm` WHERE `id` = '$id'"

Попробуй в адресной строке между двумя цифрами поставить ' или /*, вот и ОШИБКА,
Потому нужно так:
$query = mysql_query("SELECT * FROM `comm` WHERE `id` =". (int)$id);

Спустя 17 минут, 30 секунд (18.06.2010 - 22:33) Ice написал(а):
Цитата (tomash @ 18.06.2010 - 22:52)
Ice
Я не о том! Зачем проверять $query?

а... да если честно, я не вникал в тему, просто последнее на тот момент сообщение в глаза бросилось

Спустя 1 минута, 18 секунд (18.06.2010 - 22:34) tomash написал(а):
Ice
=) я просто подумал,какая-то фича) обрадовался

Спустя 5 минут, 58 секунд (18.06.2010 - 22:40) Ice написал(а):
а по теме:
по первому посту: не совсем понятно, для чего $myrow определяется два раза? Или я чего-то не понял?

 
/* в надежде, что id отфильтрован заранее
** и приведен к числовому виду.
*/

$query = mysql_query("SELECT text FROM `comm` WHERE `id` = {$id}");
while( $myrow = mysql_fetch_assoc( $query ) ) {
print $myrow['text'];
}

Вот так не работает?

Спустя 42 минуты, 4 секунды (18.06.2010 - 23:22) Jallvar написал(а):
Поц да ты дурак! id-Авто инкремент(обычно). Ещёбы не по 1 комментарию

Спустя 9 дней, 15 часов, 27 минут, 42 секунды (28.06.2010 - 14:50) linker написал(а):
Цитата (Ice @ 18.06.2010 - 17:58)
if ( empty( $query ) ) //Верно! 

Красивее, на самом деле, будет:

if (is_resource($query)) {}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.