2014-05-21 3 views
0

Я пытаюсь выполнить оператор switch, но все тот же ... теперь все опции, которые я выбрал, идут $cimb ... может ли кто-нибудь помочь мне разрешить перенаправление на правильный URL?PHP - если еще не работает хорошо

После сильфона мое кодирование:

$detectpay = mysql_query("select paymethod from themetransaction"); 
       $showdpay = mysql_fetch_array($detectpay); 
       $credit = "Credit Card"; 
       $cimb = "CIMB Clicks"; 
       $may = "Maybank2U"; 
       $paypal = "Paypal"; 
       $public = "Public eBank"; 
       $rhb = "RHB Now"; 
       switch($showdpay['paymethod']) 
        { 
         case $credit: 
          $echo = "<meta http-equiv='refresh' content='5;url=http://www.facebook.com/' />"; 
          break; 
         case $cimb: 
          $echo = "<meta http-equiv='refresh' content='5;url=https://www.cimbclicks.com.my/ibk/' />"; 
          break; 
         case $may: 
          $echo = "<meta http-equiv='refresh' content='5;url=https://www.maybank2u.com.my/mbb/m2u/common/M2ULogin.do?action=Login' />"; 
          break; 
         case $paypal: 
          $echo = "<meta http-equiv='refresh' content='5;url=https://www.paypal.com/my/cgi-bin/webscr?cmd=_login-submit' />"; 
          break; 
         case $public: 
          $echo = "<meta http-equiv='refresh' content='5;url=https://www2.pbebank.com/myIBK/apppbb/servlet/BxxxServlet?RDOName=BxxxAuth&MethodName=login' />"; 
          break; 
         case $rhb: 
          $echo = "<meta http-equiv='refresh' content='5;url=https://logon.rhb.com.my/ />"; 
          break; 
         default: 
          $echo = "none of the above worked..."; 
        } 


       echo $echo; 
+0

вам нужно использовать оператор switch ... –

+1

Единый '=' - оператор присваивания, double '==' - это свободное сравнение, а тройное '===' - строгое сравнение. Вы хотите, по крайней мере, потерять сравнение ('==') здесь. Кроме этого, вместо этого вы должны использовать оператор switch. Главное преимущество заключается в том, что вам нужно только написать имя переменной один раз, а не 6 раз в вашем примере. –

+0

@ Matías как сделать оператор switch? im очень новый в php – user3652484

ответ

3

Ваше if сек потребности двойной знак равенства: ==

if($showdpay['paymethod'] == $credit) //and so on... 

Но видя ваш код, я должен предложить использовать switch заявление.

Небольшая помощь:

Вы можете переписать код из этого:

if($showdpay['paymethod'] == $credit) 
{ 
    echo " <meta http-equiv='refresh' content='5;url=http://www.facebook.com/' />"; 
} 
elseif($showdpay['paymethod'] == $cimb) 
{ 
    echo"<meta http-equiv='refresh' content='5;url=https://www.cimbclicks.com.my/ibk/' />"; 
} 

к этому:

switch($showdpay['paymethod']) 
{ 
    case $credit: 
     $echo = "<meta http-equiv='refresh' content='5;url=http://www.facebook.com/' />"; 
     break; 
    case $cimb: 
     $echo = "<meta http-equiv='refresh' content='5;url=https://www.cimbclicks.com.my/ibk/' />"; 
     break; 
    default: 
     $echo = "none of the above worked..."; 
} 

echo $echo; 
+0

привет, я использую '==', но все равно тот же – user3652484

+0

привет спасибо за ваш ответ ~ но все опции стали '$ cimb' выбрать какой-либо выбор собираются' $ cimb' url – user3652484

+0

любая идея, как это сделать? – user3652484

0

Вы assiging с = использованием == для сравнения значений

т.е. if($showdpay['paymethod'] == $credit)

0

Используйте для сравнения ==. Одиночный = предназначен для присвоения значения переменной.

if($showdpay['paymethod'] = $credit) 

должно быть:

if($showdpay['paymethod'] == $credit) 

изменить Также все ваши, если еще блок.

if($showdpay['paymethod'] = $credit) является назначение $credit to $showdpay['paymethod'] перед выполнением if так PHP теперь будет читать его, как if("Credit Card");, которая возвращает истину, как всегда.

EDIT: по вашему запросу.

$detectpay = mysql_query("select paymethod from themetransaction"); 

должно быть:

$detectpay = mysql_query("select paymethod from themetransaction where paymethod = '".$var."'"); 

В чем $var тот, который вы выбрали в выбранном коробке. Ваш код всегда будет получать кредитную карту, если кредитная карта является первой записью в таблице themetransaction.

Смежные вопросы