Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как узнать, удалось ли получить данные из MySQL?
Форумы портала PHP.SU » » Вопросы новичков » Как узнать, удалось ли получить данные из MySQL?

Страниц (1): [1]
 

1. zusicks438 - 01 Сентября, 2013 - 18:53:04 - перейти к сообщению
Доброго времени суток!

Я, конечно, понимаю, что вопрос несерьезный и истина где-то рядом. Но все же.

С помощью функции mysql_query сохраняется результат SQL-запроса (SELECT) в переменную $vresult:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $vresult = mysql_query($vsql, $vconnect);


После этого результат обрабатывается так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. while ($row=mysql_fetch_array($vresult, MYSQL_NUM))
  2. {
  3. код
  4. }


Как водится, даже если MySQL отдала пустой результат, функция mysql_query не возвратит false. И тут проблема: как понять, что результат все-таки пустой? Можно, конечно, сделать так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if (!$row=mysql_fetch_array($vresult))
  2. {
  3. echo 'Error!';
  4. }
  5. else
  6. {
  7.    while ($row=mysql_fetch_array($vresult, MYSQL_NUM))
  8.    {
  9.    код
  10.    }
  11. }

Но только тогда первая строка будет пропущена.

Лично я решил этот вопрос с помощью замены "while" на "do..while". Но есть ли какой-то способ, при котором можно было бы оставить именно первый вариант цикла?
2. caballero - 01 Сентября, 2013 - 19:00:06 - перейти к сообщению
mysql_num_rows
3. zusicks438 - 01 Сентября, 2013 - 19:16:46 - перейти к сообщению
Спасибо, вопросов больше не имею Улыбка

 

Powered by ExBB FM 1.0 RC1