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)

else返回 false,当语句执行时我看不到“失败” 。有任何想法吗?

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 循环的原因。你的回应是空的。打印 $exec_connstatus_query 并首先检查。
或者如果查询返回零记录,在这种情况下循环将不会运行。

于 2012-06-15T15:51:36.387 回答