Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Правила для оператора условие

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dembi
Отправлено: 24 Ноября, 2009 - 15:42:41
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Есть одна проблема с оператором условия.
Я получаю значение статуса через переменную $_POST[‘status’]
Если оно равно «Все» должно выполняться одно условие иначе выполняется другое.

Вот код:

CODE (text):
скопировать код в буфер обмена
  1. $status = $_POST['status'];
  2. if ((!empty($status)) && ($status == "Все")) {
  3.         echo $query_report = $query_report;
  4. }
  5. if ((!empty($status)) && ($status != "Все")) {
  6.         echo $query_report = $query_report." and ms.status = '$status'";
  7. }
  8.  

У меня же почему-то, если переменная $status получает значение «Все», все равно выполняется это условие:

CODE (text):
скопировать код в буфер обмена
  1. if ((!empty($status)) && ($status != "Все")) {
  2.         echo $query_report = $query_report." and ms.status = '$status'";
  3. }


Что я делаю не так???

Заранее спасибо за помощь.
(Добавление)
Решил это следующим путем:

присвоил переменой статус следующее значение:



и Оператору условия прописал:

CODE (text):
скопировать код в буфер обмена
  1.  
  2.    if ($state == $all) {
  3.    $query_report = $query_report;
  4. }
  5. if ($state != $all) {
  6.    $query_report = $query_report." and ms.status = '$state'";
  7. }


Теперь все работает.
 
 Top
Nestor
Отправлено: 24 Ноября, 2009 - 16:15:39
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Может быть проблема с кодировкой.

var_dump($status); что дал?


-----
Aurus CMS
 
 Top
Мелкий Супермодератор
Отправлено: 24 Ноября, 2009 - 16:17:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Потому что так работает условие &&, для вашего случая нужно использовать AND. Т.е.
PHP:
скопировать код в буфер обмена
  1. if ((!empty($status)) AND ($status == "Все")) {


Почему так: http://php.su/learnphp/operators/?logical

(Отредактировано автором: 24 Ноября, 2009 - 16:18:51)



-----
PostgreSQL DBA
 
 Top
JustUserR
Отправлено: 24 Ноября, 2009 - 16:58:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Мелкий пишет:
Потому что так работает условие &&, для вашего случая нужно использовать AND.
PHP.SU пишет:
Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами
Помоему у автора вообзе оба условия выделены в дополнительные скобки и приоритете здесь несущественен
Nestor пишет:
Может быть проблема с кодировкой.
Вот это уже больше может быть похоже на истину
dembi пишет:
У меня же почему-то, если переменная $status получает значение «Все», все равно выполняется это условие
А само первое условия то выполялось
Вообще станны еще две вещи - то была переменная $status а стала $state (Вы не допустили ошибку ?) и еще можно было попробовать заменить == на === (Может быть возвращался true так ак одна из них была не строка)


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB