Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод с базы данных. Какая-то ошибка.
 
 автор: Mookapek   (10.09.2009 в 02:09)   письмо автору
 
 


$quary = "SELECT id FROM base";
$res = mysql_query($query);
if(!$res) exit("База данных недоступна.");

if(mysql_num_rows($res) > 0)
{
 while($result = mysql_fetch_array($res))
 {
  echo $result['id'];
 }
}

По идее данный код должен вывести значения поля id, так как соответствующие записи в базе существуют. Однако браузер ничего не выводит, хотя тело цикла выполняется точно один раз. Почему-то...
В чем может быть проблема?

  Ответить  
 
 автор: Trianon   (10.09.2009 в 02:16)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:09)
 

error_reporting(E_ALL|E_NOTICE);


[в такой конструкции if(mysql_num_rows()) выглядит лишним]

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:19)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:16)
 

Стыдно спрашивать, но это "error_reporting(E_ALL|E_NOTICE);" куда надо вписать?

  Ответить  
 
 автор: Trianon   (10.09.2009 в 02:22)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:19)
 

в начало скрипта.

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:25)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:22)
 

Нет, никаких ошибок и предупреждений не выдалось.

  Ответить  
 
 автор: Trianon   (10.09.2009 в 02:26)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:25)
 

Стоп.
Не могло не сообщить.

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:30)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:26)
 

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

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:26)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:16)
 

if(mysql_num_rows()) вот это я убрал, и у меня выводится теперь цикл один раз выполняется (выводит первый id), хотя в базе две записи.

  Ответить  
 
 автор: Trianon   (10.09.2009 в 02:27)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:26)
 

Еще раз.
Не могло не выдать хотя бы предупреждения.

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:34)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:27)
 

Все-таки не выдается никаких предупреждений и ошибок, касающихся данной темы. Странно, что цикл один раз выполняется, тогда как записей больше, чем одна.

  Ответить  
 
 автор: Trianon   (10.09.2009 в 02:41)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:34)
 

Полагаю, что у Вас просто недостаточно опыта, чтобы определить, касается диагностика данной темы или нет.
И в этой ситуации ошибки следует устранять все.

В частности, ошибкой явно должна быть отмечена строка $res = mysql_query($query);

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:45)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:41)
 

На счет недостатка опыта - здесь то я согласен.
А вот можете объяснить, почему именно строка $res = mysql_query($query); должна быть отмечена как ошибка?

  Ответить  
 
 автор: Trianon   (10.09.2009 в 03:04)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:45)
 

потому что переменная $query неопределена в этой точке.
но Вам должен был сообщить об этом не я и не Рома. А php.

  Ответить  
 
 автор: Рома   (10.09.2009 в 02:47)   письмо автору
 
   для: Trianon   (10.09.2009 в 02:16)
 

хм. а почему это лишним? if(!res) - говорит о том, что запрос к базе был успешным или наоборот. а вот вернул он строки или нет и проверяется if(mysql_num_rows()).

тогда
if(mysql_num_rows($res)>0)
 {
             вывод строк
 }
else 
 {
         echo '    в данном разделе нет статей. ваша будет первой.  ' ;
 }


разве так не логично? или есть более оригинальный способ?

  Ответить  
 
 автор: Trianon   (10.09.2009 в 03:06)   письмо автору
 
   для: Рома   (10.09.2009 в 02:47)
 

ну так else то не было,
а в if был только while

  Ответить  
 
 автор: Mookapek   (10.09.2009 в 02:42)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:09)
 

$res = mysql_query("SELECT id FROM base"); - сделал так и все заработало. Почему? - не знаю.

  Ответить  
 
 автор: Рома   (10.09.2009 в 02:51)   письмо автору
 
   для: Mookapek   (10.09.2009 в 02:09)
 

невнимательность!

>

>$quary = "SELECT id FROM base";
>$res = mysql_query($query);
>if(!$res) exit("База данных недоступна.");
>
>if(mysql_num_rows($res) > 0)
>{
> while($result = mysql_fetch_array($res))
> {
>  echo $result['id'];
> }
>}
>

>По идее данный код должен вывести значения поля id, так как соответствующие записи в базе существуют. Однако браузер ничего не выводит, хотя тело цикла выполняется точно один раз. Почему-то...
>В чем может быть проблема?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования