Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > нет отображаются данные при FALSE


Автор: Shark 16.3.2009, 16:24
вот код:
Код

if($_GET['friends'])
    {
        echo "<td colspan=3 class='tableH'>Пользователи, существующие в Вашей адресной книге</td>";
        $friends=mysql_query("SELECT * FROM *** WHERE id_user='".$_SESSION['id']."'") or die (mysql_fetch_array());
        while($friend=mysql_fetch_array($friends))
            {
            if(!empty($friend['id_user']))
                {
                    echo "<tr><td width=40% class='tableH' align=center><b>Имя</b></td><td width=60% colspan=2 class='tableH'align=center><b>Опции</b></td></tr>
                    <tr><td width=40% class='tableH'>&nbsp;&nbsp;".$friend['friend']."</td>
                    <td width=60% colspan=2 class='tableH' height=30>[ Редактировать ]&nbsp;&nbsp;::&nbsp;&nbsp;[ <a href=friends.php?sid=".$friend['friend_id']."&amp;drop="."drop".">Удалить</a> ] ";
                    if($friend['writing'] == 1)
                        {
                            echo "&nbsp;&nbsp;( Письма принимаются )";
                        }
                        else
                        {
                                echo "&nbsp;&nbsp;( Письма не принимаются )";
                        }
                    echo "</tr></table><br /><form action=\"friends.php\" method=POST>
                    <table border=0 width=100%  align=center style='border-collapse:collapse;table-layout:fixed;'><tr>
                    <td width=15% class='tableH'>Имя пользователя<br><input type=text name=usernick size=20 value=".$_SESSION['add_user']."></td>
                    <td width=20% class='tableH'>Введите краткое описание<br><input type=text name=about size=30></td>
                    <td width=20% class='tableH'>Разрешить пользователю писать Вам?<br>
                    <SELECT name=writing>
                    <OPTION value='1'>Да</OPTION>
                    <OPTION value='0'>Нет</OPTION></SELECT></td></tr>
                    <tr><td class='tableH' colspan=3 align=center><input type=submit name=add value=\"Добавить в адресную книгу\"></td></tr></table></form>";
                }
            else
                {
                    echo "<tr><td colspan=3 class='tableH' align=center height=50>Адресная книга пуста</td></tr></table>";
                }
            }
    }

если это $friend['id_user'] пустое, должно показываться Адресная кнга пуста
В чем проблема?

Автор: Leoo 16.3.2009, 16:45
а помоему если адресная книга пуста, т.е. выборка без единой записи, то выполнение этого ифа даже не произойдет

Автор: Shark 16.3.2009, 17:04
Leoo, произойдет.. вот часть другого кода: где работает все нормально:
Код

if($_GET['read'])
    {
$readlpmess=mysql_query("SELECT * FROM ***WHERE to_user='".$_SESSION['login']."' ") or die (mysql_error());
$countmess=mysql_num_rows($readlpmess);
$readlp=mysql_fetch_array($readlpmess);
if(empty($readlp['to_user']))
    {
        echo "<td width='5%'  class='tableH'>&nbsp;</td>
        <td width='35%' class='tableH' align=center><b>Заголовок письма</b></a></td>
        <td width='30%' class='tableH' align=center><b>Отправитель</b></a></td>
        <td width='25%' class='tableH' align=center><b>Дата</b></a></td></tr>
        <tr><td class='tableH' colspan=4 align=center>Сообщений нет</td></tr>";
    }
else
    {

если пуста, то показывается коск таблицы который ты видшь, ели не пуста, о показывается все после else

Автор: enof 16.3.2009, 17:15
Цитата(Shark @  16.3.2009,  17:04 Найти цитируемый пост)
***

секрет?  smile 
Код

var_dump($friend['id_user']);

Может оно и не пустое вовсе?

Автор: unicross 16.3.2009, 17:27
При таком коде:
Цитата
        $friends=mysql_query("SELECT * FROM *** WHERE id_user='".$_SESSION['id']."'") or die (mysql_fetch_array());
        while($friend=mysql_fetch_array($friends))
            {

Условие
Цитата
            if(!empty($friend['id_user']))

бессмысленно!!! Уже в цикле while будет false. И цикл ни разу не выполниться!!!
Код

if (mysql_num_rows($friends)>0) {
// Выводим книгу
}
else {
// Книга пуста
}

А это что за чушь ????  smile 
Цитата(Shark @  16.3.2009,  16:24 Найти цитируемый пост)
or die (mysql_fetch_array());

Надо
Код

or die (mysql_error());

Автор: Shark 16.3.2009, 17:28
Цитата

Может оно и не пустое вовсе?

Пустое, потому что таблица пуста

Цитата

Цитата(Shark @  16.3.2009,  16:24 ) 
or die (mysql_fetch_array()); 



Спасибо, что показал... мой косяк

Автор: enof 16.3.2009, 17:32
Shark, 
если таблица пуста, у вас дело до if не дойдет. Вы цикл while писали осмысленно? smile 
Выше уже все сказано.

p.s.
че вы все к mysql_fetch_array() привязались? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)