Работа с циклом в php.

Разработка своих веб-приложений и страничек

Работа с циклом в php.

Сообщение JavaExport » 19 фев 2009, 19:20

Как сделать так ,если результат переменной 0 то цикл не срабатывал. Ответ:

Допустим мы загнали результат запроса к базе в $result.
Но если у нас нет не одной записи в базе то выводить ей нечего но цикл всё равно выводит пустую к примеру табличку.. как это исправить сейчас вам расскажу.
Вот пример цикла с выводом данных из БД.
Код: Выделить всёРазвернуть
$result mysql_query ("SELECT time,nik,mail,text FROM php ",$db);

if (
mysql_num_rows($result) > 0)

   {
$myrow mysql_fetch_array ($result);

do{
    
$myrow['text'] = wordwrap($myrow['text'], 50"<br />\n"1); 
    echo 
"\n<table align=\"center\" width=\"690\" class=\"lesson\">
       <tr>
         <td width=\"690\" border=\"0\">
       <p><b>Ник: "
.$myrow['nik']." <br>@mail: ".$myrow['mail']."</b></p><hr />
       <p class=\"text_name\"><b>Коментарий:<br> "
.$myrow['text']."</b></p>
       <p class=\"text_name\" align=\"right\">Дата добавления: "
.$myrow['time']."</p></td>
         </tr>
       <tr>
         <td></td>
         </tr>
       </table><br /><br />\n"
;


}
while (
$myrow mysql_fetch_array ($result));
 }    

Вот именно эта строка:
Код: Выделить всёРазвернуть
if (mysql_num_rows($result) > 0)  
Отвечает за то что если в $result не попало не одной записи, и она говорит если $result < 0
то не выводить цикл вообще, ну а если переменная result > 0 то цикл выводится как и положено.
Не по теме люди есть у кого нибудь скрипт перелистывания страниц, нужно для гостевой ,что бы не все коментарии выводились на одной страничке.
JavaExport
Активный участник
 
Сообщения: 937
Зарегистрирован: 15 сен 2008, 18:45
Домен: http://mobilephone.ixbb.r

Re: Работа с циклом в php.

Сообщение Rostov114 » 19 фев 2009, 22:36

хех бред какойто
Код: Выделить всёРазвернуть
$result = mysql_query ("SELECT time,nik,mail,text FROM php ",$db);
while ($myrow = mysql_fetch_array ($result))
{
    $myrow['text'] = wordwrap($myrow['text'], 50, "<br />\n", 1); 
    echo 
"\n<table align=\"center\" width=\"690\" class=\"lesson\">
       <tr>
         <td width=\"690\" border=\"0\">
       <p><b>Ник: "
.$myrow['nik']." <br>@mail: ".$myrow['mail']."</b></p><hr />
       <p class=\"text_name\"><b>Коментарий:<br> "
.$myrow['text']."</b></p>
       <p class=\"text_name\" align=\"right\">Дата добавления: "
.$myrow['time']."</p></td>
         </tr>
       <tr>
         <td></td>
         </tr>
       </table><br /><br />\n"
;
}
 

Если mysql_fetch_array вернет 0 т.е. таблица пуста...то цикл тупо не выполнится...есле же есть там что-то то будет крутится покамест mysql_fetch_array не выдаст 0 (конец..все таблица выведена)
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Работа с циклом в php.

Сообщение JavaExport » 19 фев 2009, 22:40

Rostov114 писал(а):Если mysql_fetch_array вернет 0 т.е. таблица пуста...то цикл тупо не выполнится...есле же есть там что-то то будет крутится покамест mysql_fetch_array не выдаст 0 (конец..все таблица выведена)
Я тоже так думал, но когда в результ не что не поподало то цикл прохадил и выводил пустой только.
JavaExport
Активный участник
 
Сообщения: 937
Зарегистрирован: 15 сен 2008, 18:45
Домен: http://mobilephone.ixbb.r

Re: Работа с циклом в php.

Сообщение Rostov114 » 19 фев 2009, 22:42

JavaExport писал(а):Я тоже так думал, но когда в результ не что не поподало то цикл прохадил и выводил пустой только.

Правильно...цикл то не выполнялся...что он тебе выведет?
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Работа с циклом в php.

Сообщение Костик » 19 фев 2009, 22:56

все верно, только через - mysql_num_rows можно проверить :)
FreeBSD 9.2 and Fedora 18 user
Аватара пользователя
Костик
Активный участник
 
Сообщения: 1944
Зарегистрирован: 03 сен 2007, 02:15

Re: Работа с циклом в php.

Сообщение zk » 19 фев 2009, 23:35

Только я не понимаю причём тут заголовок, это просто пример условного перехода или демонстрация функции mysql_num_rows, а цикл здесь вообще играет 3ю роль.
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Работа с циклом в php.

Сообщение JavaExport » 19 фев 2009, 23:43

Rostov114 писал(а):Правильно...цикл то не выполнялся...что он тебе выведет?
Ещё раз говорю выводит цикл без данных.То есть табличку одну выводит но в ней нету нечего. А эта строка делает так что если в результ попало значение 0 то и пустой цикл выводится не будет. :)
JavaExport
Активный участник
 
Сообщения: 937
Зарегистрирован: 15 сен 2008, 18:45
Домен: http://mobilephone.ixbb.r

Re: Работа с циклом в php.

Сообщение JavaExport » 23 фев 2009, 03:34

zk писал(а):Только я не понимаю причём тут заголовок, это просто пример условного перехода или демонстрация функции mysql_num_rows, а цикл здесь вообще играет 3ю роль.
Да но каму это нужно тот поймёт что это можно применить не тока с циклом.
JavaExport
Активный участник
 
Сообщения: 937
Зарегистрирован: 15 сен 2008, 18:45
Домен: http://mobilephone.ixbb.r

Re: Работа с циклом в php.

Сообщение Rostov114 » 23 фев 2009, 15:47

Такс....
Цикл в первом посте будет работать так: выполнится, потом проверит нужно ли еще раз в цикл выполнять, накнется на 0 (таблица пуста) и выйдет из цикла...но возможно выведет пустые строки из-за $myrow = mysql_fetch_array ($result); в самом начале...+ ошибку...
В моем жу примере он сразу выдаст 0 т.к. таблица пуста...и выводит ничего не будет.
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Работа с циклом в php.

Сообщение NowhereMan » 23 фев 2009, 16:58

Однако, первый вариант более логичен, так как перед тем, как заполнять таблицу в цикле для нее надо вывести заголовки, какое-то другое оформление, не относящееся к циклу.
Если же этого не надо - да, второй вариант лаконичнее.
Аватара пользователя
NowhereMan
Активный участник
 
Сообщения: 73
Зарегистрирован: 12 апр 2008, 00:29
Домен: linuxdoc.vfose.ru


Вернуться в PHP, HTML, CSS...

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 154