|
|
|
|
$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, так как соответствующие записи в базе существуют. Однако браузер ничего не выводит, хотя тело цикла выполняется точно один раз. Почему-то...
В чем может быть проблема? | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:09)
| | error_reporting(E_ALL|E_NOTICE);
[в такой конструкции if(mysql_num_rows()) выглядит лишним] | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:16)
| | Стыдно спрашивать, но это "error_reporting(E_ALL|E_NOTICE);" куда надо вписать? | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:19)
| | в начало скрипта. | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:22)
| | Нет, никаких ошибок и предупреждений не выдалось. | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:25)
| | Стоп.
Не могло не сообщить. | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:26)
| | Ну в подтверждение работы error_reporting могу сказать, что оно вывело какие-то предупреждения, не касающиеся вывода из базы. | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:16)
| | if(mysql_num_rows()) вот это я убрал, и у меня выводится теперь цикл один раз выполняется (выводит первый id), хотя в базе две записи. | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:26)
| | Еще раз.
Не могло не выдать хотя бы предупреждения. | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:27)
| | Все-таки не выдается никаких предупреждений и ошибок, касающихся данной темы. Странно, что цикл один раз выполняется, тогда как записей больше, чем одна. | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:34)
| | Полагаю, что у Вас просто недостаточно опыта, чтобы определить, касается диагностика данной темы или нет.
И в этой ситуации ошибки следует устранять все.
В частности, ошибкой явно должна быть отмечена строка $res = mysql_query($query); | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:41)
| | На счет недостатка опыта - здесь то я согласен.
А вот можете объяснить, почему именно строка $res = mysql_query($query); должна быть отмечена как ошибка? | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:45)
| | потому что переменная $query неопределена в этой точке.
но Вам должен был сообщить об этом не я и не Рома. А php. | |
|
|
|
|
|
|
|
для: Trianon
(10.09.2009 в 02:16)
| | хм. а почему это лишним? if(!res) - говорит о том, что запрос к базе был успешным или наоборот. а вот вернул он строки или нет и проверяется if(mysql_num_rows()).
тогда
if(mysql_num_rows($res)>0)
{
вывод строк
}
else
{
echo ' в данном разделе нет статей. ваша будет первой. ' ;
}
|
разве так не логично? или есть более оригинальный способ? | |
|
|
|
|
|
|
|
для: Рома
(10.09.2009 в 02:47)
| | ну так else то не было,
а в if был только while | |
|
|
|
|
|
|
|
для: Mookapek
(10.09.2009 в 02:09)
| | $res = mysql_query("SELECT id FROM base"); - сделал так и все заработало. Почему? - не знаю. | |
|
|
|
|
|
|
|
для: 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, так как соответствующие записи в базе существуют. Однако браузер ничего не выводит, хотя тело цикла выполняется точно один раз. Почему-то...
>В чем может быть проблема? | |
|
|
|