2016-12-15 7 views
0

この単純なデータベースクエリに問題があります。 opening if-conditionは真であり、動作しています。単純なデータベースクエリで問題が発生する

if/if/elseの内部に問題があります。 2番目のステートメントは、アクティブなユーザーがいくつかの接続を持っていても、訪問しているプロファイルが機能していない場合です。 「あなたの乗組員に招待」の結果となります。

しかし、最初の自然状態がtrueの場合、アクティブユーザーもプロファイル所有者も接続していないと、私のクエリは機能しません。それは、プロファイル所有者が少なくとも1つの接続($ countProfileCon!== 0)を持っているときにのみ起こるべきelse文( "join crew")をもたらします。その場合、アクティブなコネクションの数ユーザーは持っています。

なぜ表示されません。

if ($countCurrent==0 && $countFormer==0) { 


     $activeConnectionQuery = $DBcon->query("SELECT * FROM tbl_current_userconnections WHERE user_id=".$_SESSION['userSession']); 
     $countActiveCon=$activeConnectionQuery->num_rows; 

     $profileConnectionQuery = $DBcon->query("SELECT * FROM tbl_current_userconnections WHERE user_id=".$_GET['user']); 
     $countProfileCon=$profileConnectionQuery->num_rows; 



     if ($countActiveCon==0 && $countProfileCon==0) { 
      $connect = "<p>create a crew</p>"; 
     } 

     if ($countActiveCon!==0 && $countProfileCon==0) { 
      $connect = "<p>invite to your crew</p>"; 
     } 

     else { 
      $connect = "<p>join crew</p>"; 
     } 
    } 

tbl_current_userconnections問題が発生した場合、次のようになります。

user_id     connection_id 
----------------  ---------------- 

(それは明らかに、空の)

答えて

0

を、私はあなたが第二の条件で "他" のキーワードが欠落していると思います。

if ($countActiveCon==0 && $countProfileCon==0) { 
    $connect = "<p>create a crew</p>"; 
} 

elseif ($countActiveCon!==0 && $countProfileCon==0) { 
    $connect = "<p>invite to your crew</p>"; 
} 

else { 
    $connect = "<p>join crew</p>"; 
} 

最初の状態は正常です。しかし、elseifが欠落しているため、変数がオーバーライドされます。これは、2番目の条件がfalseと評価されるためです。

+0

どのような美しさ、ありがとう、それでした! – Maxischl