Доброго времени суток, пршу помощи, не выводится сообщение при if - ложь. Если правда - всё нормально выводится. Вот код: Код (PHP): $banlist = mysql_query("SELECT * FROM `banlist` WHERE `name`='{$username}'"); while($row_banlist = mysql_fetch_assoc($banlist)){ if(mysql_num_rows($banlist)){ $is_baned.= "<div class='bgobj2'>Вы забанены на сервере <b>".$row_banlist["server"]."</b> администратором <b>".$row_banlist["nameadmin"]."</b> по причине \"<b><a href='/rules.html'>".$row_banlist["cause"]."</a></b>\" по <b>".date("d-m-Y H:i",$row_banlist["date_end"])."</b>. <input value='{$row_banlist["server"]}' type='hidden' name='pickup_ban_server'> <input value='{$username}' type='hidden' name='pickup_ban_name'> Разбан стоит <b>".$price_unban."</b> рублей. <br/><button class='buttonlk' name='unban'>Разбаниться</button><input type='hidden' name='unban_srv' value='{$row_banlist["server"]}'/></div>"; } else $is_baned = "<br/>Вы не забанены ни на одном сервере."; } echo $is_baned;?>
ну естественно он будет показывать нормально. синтаксис же не нарушен. нарушена лишь логика употребления оператора конкатенации. была бы иде - она может быть обратила внимание на может быть неинициализированную переменную и показала бы ворнинг на неё. но так-то всё корректно. за исключением самого использования конкатенации вместо простого присвоения.
и потом - нафиг набивать в строку чтоб потом один раз показать? сразу в поток печатай. причем выходом из режима пхп. Добавлено спустя 1 минуту 27 секунд: ну правильно не меняется. у тебя при итерации результирующей таблицы не меняется кол-во строк в ней. вот мы плавно притекли к еще одному забавному моменту
Изменил код на такой: Код (PHP): <?php $banlist = mysql_query("SELECT * FROM `banlist` WHERE `name`='{$username}'"); while($row_banlist = mysql_fetch_assoc($banlist)){ if(mysql_num_rows($banlist)){ echo "<div class='bgobj2'>Вы забанены на сервере <b>{$row_banlist["server"]}</b> администратором <b>{$row_banlist["nameadmin"]}</b> по причине \"<b><a href='/rules.html'>{$row_banlist["cause"]}</a></b>\" по <b>".date("d-m-Y H:i",$row_banlist["date_end"])."</b> <input value='{$row_banlist["server"]}' type='hidden' name='pickup_ban_server'> <input value='{$username}' type='hidden' name='pickup_ban_name'> Разбан стоит <b>{$price_unban}</b> рублей. <br/><button class='buttonlk' name='unban'>Разбаниться</button><input type='hidden' name='unban_srv' value='{$row_banlist["server"]}'/></div>"; } else echo "<br/>Вы не забанены ни на одном сервере."; }?> то же самое. Добавлено спустя 1 минуту 29 секунд: И даже так: Код (PHP): <?php $banlist = mysql_query("SELECT * FROM `banlist` WHERE `name`='{$username}'"); if(mysql_num_rows($banlist)){ while($row_banlist = mysql_fetch_assoc($banlist)){ echo "<div class='bgobj2'>Вы забанены на сервере <b>{$row_banlist["server"]}</b> администратором <b>{$row_banlist["nameadmin"]}</b> по причине \"<b><a href='/rules.html'>{$row_banlist["cause"]}</a></b>\" по <b>".date("d-m-Y H:i",$row_banlist["date_end"])."</b> <input value='{$row_banlist["server"]}' type='hidden' name='pickup_ban_server'> <input value='{$username}' type='hidden' name='pickup_ban_name'> Разбан стоит <b>{$price_unban}</b> рублей. <br/><button class='buttonlk' name='unban'>Разбаниться</button><input type='hidden' name='unban_srv' value='{$row_banlist["server"]}'/></div>"; } } else echo "<br/>Вы не забанены ни на одном сервере.";?> Добавлено спустя 1 минуту 44 секунды: Прошу прощения, при втором варианте всё работает верно. Спасибо за помощ, извините за потраченое время.