2017-07-11 37 views
-2

を働いていない続ける私持っているアップデートの列というタイトル/ ELSEIF条件ならば、以下の一連のCol & Col2フォームが送信されるとき:PHPの "if"条件が無視されるのはなぜですか?ブレーク/

コードが実行さ
if($data3["Col"] < 2){ 

     $db->query("UPDATE answers SET Col = Col+1"); 

}elseif($data3["Col"]= 2){ 
     $db->query("UPDATE answers SET Col = Col+0"); 
    } 

if($data3["Col2"] < 10){ 

$db->query("UPDATE answers SET Col2 = Col2+1"); 

}elseif($data3["Col2"] >= 10){ 

     $db->query("UPDATE answers SET Col2 = Col2+0"); 
} 

、それは無視した場合/ ELSEIF条件とすべての更新を行います。たとえば、フォーム提出時に、Col = 2 & Col2 = 10とします。 ColCol2の両方が同じ状態を維持する必要があります。しかし、コードは両方とも1で更新されます。私はcontinuebreak、およびreturnを使用して考えることができるすべての反復を試みましたが、何も動作していないようです。

ご協力いただければ幸いです。

ありがとうございます!

+1

最初の 'elseif'には' = 'だけが含まれています。あなたは2を$ $ 3に割り当てるのではなく、** ** 2と等しいことを確認してください。 –

+0

@ObsidianAgeありがとうございます! – user3666954

+0

'col = 2'と' col2 = 10'を更新したくない場合は、なぜ不要な更新クエリがあるのですか –

答えて

1

あなたは

elseif($data3["Col"]==2) 
+0

ああ、ちょっとしたコンマがどれほど大きな違いか?ありがとうございました:) – user3666954

+0

歓迎です、私の答えを受け入れてください –

+0

それは私が受け入れるために数分待つ必要があると言います。私はそれが許せば私は受け入れるだろう。 – user3666954

1

等号(=)をここに等しいので、あなたのelseif句が
$data3["Col"] == 2の代わり$data3["Col"]= 2である必要があり、割り当てのためのないテストの平等(==)用で逃しました。

if($data3["Col"] < 2){ 

     $db->query("UPDATE answers SET Col = Col+1"); 

}elseif($data3["Col"]= 2){// not $data3["Col"]= 2 but this $data3["Col"] == 2 
     $db->query("UPDATE answers SET Col = Col+0"); 
    } 

幸運

+0

ありがとうございました。余分に逃した余分= – user3666954

+0

それは時々起こる –

+0

あなたのコードを読んでいない場合はええ –

1

代わりの

elseif($data3["Col"]=2){ $db->query("UPDATE answers SET Col = Col+0");} 

使用この:

elseif($data3["Col"]==2){ $db->query("UPDATE answers SET Col = Col+0");} 
-1

あなたがノーアクションのためのelseifを使用する必要はありません。.. だけのためならばしてみてください任意のアクション...

チェック$data3["Col2"]値。私はあなたの問題はここにあると思っています。

関連する問題