AND не срабатывает?

logoff

Новичок
В форму вбивается $country, $city остается пустым, почему срабатывают обе конструкции?



if ($cat === Любой and !empty($country) and empty($city) and empty($_REQUEST['name'])) {

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if ($cat === Любой and !empty($country) and !empty($city) and empty($_REQUEST['name'])) {
 
Последнее редактирование:

logoff

Новичок
Нашел причину... видимо у конструкций if есть определенный порядок, но почему срабатывают обе конструкции я не понял. Я чего-то не знаю?

В форму вбивается $country, $city остается пустым:

ЕСЛИ ТАК:
if ($cat === Любой and !empty($country) and empty($city) and empty($_REQUEST['name'])) {
if ($cat === Любой and !empty($country) and !empty($city) and empty($_REQUEST['name'])) {

РЕЗУЛЬТАТ:
срабатывают обе конструкции

if ($cat === Любой and !empty($country) and !empty($city) and empty($_REQUEST['name'])) {
if ($cat === Любой and !empty($country) and empty($city) and empty($_REQUEST['name'])) {

РЕЗУЛЬТАТ:
срабатывает только нижняя, то есть та в которой $city пустая.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@logoff, а ты фантазер) Код показывай, который воспроизводит проблему.
 

logoff

Новичок
@logoff, а ты фантазер) Код показывай, который воспроизводит проблему.
да тут нечего показывать..

if ($cat === Любой AND !empty($country) AND !empty($city) AND empty($_REQUEST['name'])) {


$select = 'SELECT * FROM users WHERE country = "'.$country.'" AND city = "'.$city.'"';
$result = mysql_query($select);

while ($user = mysql_fetch_array($result)) {

$user_id = $user['user_id'];
$fname = $user['fname'];
$lname = $user['lname'];
$email = $user['email'];
$image = $user['user_pic_path'];
$gender = $user['gender'];
$country = $user['country'];
$city = $user['city'];


echo <<<EOD
<table class='users'>
<tr>
<td>
<img src='$image' class=leftimg>
<b>ID: </b>
<a href='show_user.php?user_id=$user_id'>$fname $lname</a> ($city, $country)</br>
<b>Пол:</b> $gender</br>
<b>Возраст:</b> n/a
</td>
</tr>
</table>
</br>
EOD;
} }

if ($cat === Любой and !empty($country) and empty($city) and empty($_REQUEST['name'])) {


$select = 'SELECT * FROM users WHERE country = "'.$country.'"';
$result = mysql_query($select);

while ($user = mysql_fetch_array($result)) {

$user_id = $user['user_id'];
$fname = $user['fname'];
$lname = $user['lname'];
$email = $user['email'];
$image = $user['user_pic_path'];
$gender = $user['gender'];
$country = $user['country'];
$city = $user['city'];


echo <<<EOD
<table class='users'>
<tr>
<td>
<img src='$image' class=leftimg>
<b>ID: </b>
<a href='show_user.php?user_id=$user_id'>$fname $lname</a> ($city, $country)</br>
<b>Пол:</b> $gender</br>
<b>Возраст:</b> n/a
</td>
</tr>
</table>
</br>
EOD;
} }
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну как я и предполагал.

В твоем случае не надо было трогать в одном блоке if управляющих переменных другого блока.

У тебя зачем в первом if переменная присваивается? $city = '...';

Ясное дело у тебя в втором блоке условие empty($city) на непустой переменной даст false
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Kenrix, можно попросить сначала думать, потом писать. Проблема у него не в применяемой функции.
 
Сверху