简体   繁体   English

PHP同时循环返回空结果

[英]PHP while loop returning null result

$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";
  }
}

This code has been troubling me for 3 hours. 这段代码使我困扰了3个小时。 Here the issue is even if this condition: 即使出现这种情况,这里的问题仍然存在:

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

returns false, I am not able to see "fail" when the else statement executes. 返回false,执行else语句时看不到“失败”。 Any ideas? 有任何想法吗?

mysql_query() returns FALSE on error and the loop won't execute at all. mysql_query()在错误时返回FALSE,并且循环根本不会执行。 This would occur if $_SESSION['user_id'] is not numeric. 如果$ _SESSION ['user_id']不是数字,则会发生这种情况。 why not just 为什么不只是

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

Ditto mysql_fetch_array() returns FALSE if there are no (more) rows. 如果没有(更多)行,同上mysql_fetch_array()返回FALSE。 If your session doesn't exist in tbl_connect then the loop won't execute. 如果您的会话在tbl_connect中不存在,则循环将不会执行。 Don't you want something like: 您不想要这样的东西:

$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";
}

I would suggest you to check $exec_connstatus_query first, because it may be that your query is not executed properly and thats why control did not go inside while loop. 我建议您先检查$exec_connstatus_query ,因为这可能是查询未正确执行,这就是为什么while循环中控件未进入内部的原因。 And your response is null. 您的答复为空。 Print $exec_connstatus_query and check first. 打印$ exec_connstatus_query并首先检查。
Or in case if query return Zero records, in that case loop won't run. 否则,如果查询返回零记录,则循环将不会运行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM