0
$connect_status = "SELECT connected_to_id FROM tbl_connect WHERE user_id = 
{$_SESSION['user_id']}";

$exec_connstatus_query = mysql_query($connect_status, $db_connect);

while($check_status = mysql_fetch_array($exec_connstatus_query))
{   
  if ($check_status['connected_to_id'] == $profileid)
  {
    echo "{$check_status['connected_to_id']}";
  }
  else
  {
    echo "fail";
  }
}

このコードは3時間私を悩ませてきました。ここで問題は、この状態であってもです:

if ($check_status['connected_to_id'] == $profileid)

elsefalseを返します。ステートメントの実行時に、「失敗」を確認できません。何か案は?

4

2 に答える 2

1

mysql_query()はエラー時にFALSEを返し、ループはまったく実行されません。これは、$ _SESSION['user_id']が数値でない場合に発生します。なぜだけではないのですか

$connect_status = "SELECT connected_to_id FROM tbl_connect WHERE user_id ='$_SESSION[user_id]'";

同上mysql_fetch_array()は、(それ以上の)行がない場合にFALSEを返します。セッションがtbl_connectに存在しない場合、ループは実行されません。次のようなものは必要ありません:

$connect_status = "SELECT connected_to_id FROM tbl_connect 
                   WHERE user_id ='$_SESSION[user_id]' LIMIT 1";
$exec_connstatus_query = mysql_query($connect_status, $db_connect);
if( ($check_status = mysql_fetch_array($exec_connstatus_query)) && 
    ($check_status['connected_to_id'] == $profileid) ) {
    echo "{$check_status['connected_to_id']}";
} else {
    echo "fail";
}
于 2012-06-15T15:53:24.753 に答える
0

クエリが正しく実行されていない可能性があるため、最初に確認することをお勧めします$exec_connstatus_query。そのため、制御がwhileループ内に入れられませんでした。そして、あなたの応答はnullです。$ exec_connstatus_queryを出力し、最初に確認します。
または、クエリがゼロレコードを返す場合、その場合、ループは実行されません。

于 2012-06-15T15:51:36.387 に答える