2012-04-24 4 views
1

мне нужно реализовать это в PHP:если ... И ... И (...) OR (..)

if submit isset 
AND myname isset 
AND adress not empty 
AND phonenumber not empty 
AND email not empty 
AND ( 
institution OR g_year not empty (one should be 'full') 
    OR 
donation_p OR loan_p isset (should be set) 
    OR 
donation_m OR loan_m isset (should be set).. 
) 

То, что я написал:

if ((isset($_POST['submit'])) 
    && ($_POST['myname'] != '') 
    && ($_POST['adress'] != '') 
    && ($_POST['phonenumber'] != '') 
    && ($_POST['email'] != '') 
    && (($_POST['institution'] != '') || ($_POST['g_year'] != '')) 
     || ((isset($_POST['donation_p'])) && (isset($_POST['loan_p']))) 
     || ((isset($_POST['donation_m'])) && (isset($_POST['loan_m'])))) 

Что не так с моим кодом?

Я надеюсь, что кто-то даст мне ответ .. я надеюсь, вы поняли, что я хочу; D

+0

Любые ошибки синтаксического анализа или другие выходные данные при исполнении? – Sampson

+1

Не знаю. Что это за проблема (помимо вопиющего отсутствия разрывов строк)? [Переполнение стека не является считывателем разума или хрустальным шаром.] (Http://meta.stackexchange.com/a/128551/133242) –

+3

Если вы избавитесь от передозировки скобок, вы, вероятно, увидите решение уже. – jeroen

ответ

0
  1. Вам нужно «Myname» набор, но вы проверяете, если MyName = «!».
  2. Вам нужно «пожертвование или кредит», но вы тестируете «пожертвование и кредит».
  3. Вы должны рассмотреть возможность тестирования! Empty ($ var) вместо $ var! = ''.
+3

Я также использовал бы '! Empty ($ var)', но имейте в виду, что иногда целые числа могут быть равны нулю/0, что тоже пустое значение. – feeela

+0

@ Андре спасибо! –

0

Попробуйте использовать ifelseifelse вместо того, что вы делаете сейчас, что должно работать!