$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)
返回 false,当 else
语句执行时,我无法看到"失败"。有什么想法吗?
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";
}
我建议您先检查$exec_connstatus_query
,因为可能是您的查询未正确执行,这就是为什么控制没有进入循环的原因。您的响应为空。打印$exec_connstatus_query并首先检查。
或者,如果查询返回零条记录,在这种情况下,循环将不会运行。