从数据库查询中获取和添加数组的问题

时间:2017-06-28 21:06:52

标签: php mysql arrays

我在从DBcon查询中获取数组时遇到问题。

我的表格如下:

tbl_current_userconnections:

 user_id  |  connection_id
---------------------------
    1     |     5
    1     |     6

tbl_former_userconnections:

 user_id  |  connection_id
---------------------------
          |      
          |     

让我们说活跃用户是ID = 1的用户。这个用户以某种方式调用我的php代码。使用下面发布的代码,我预计$MessengerString的结果为5,6。但事实证明结果是5,5。我完全不明白为什么。有人可以指出我的代码中有什么问题吗?

提前致谢!

$curContacts = $DBcon->query("SELECT connection_id FROM tbl_current_userconnections WHERE user_id=".$_SESSION['userSession']);
$count1=$curContacts->num_rows;

$forContacts = $DBcon->query("SELECT connection_id FROM tbl_former_userconnections WHERE user_id=".$_SESSION['userSession']);
$count2=$forContacts->num_rows;


if ($count1!==0 && $count2!==0) {

    $curContacts=$curContacts->fetch_array();

    $forContacts=$forContacts->fetch_array();

    $MessengerArray = array_merge($curContacts, $forContacts);



} else if ($count1==0 && $count2!==0) {

    $MessengerArray = $forContacts->fetch_array();



//this will be the case:
} else if ($count1!==0 && $count2==0) {

    $MessengerArray = $curContacts->fetch_array();



} else {

    $MessengerArray = '';

}


$MessengerString = implode(',',$MessengerArray);

1 个答案:

答案 0 :(得分:0)

fetch_array()默认情况下每行返回两个数组 - 一个关联数组和一个数字数组,这就是为什么你只看到第一行中的两个数组。使用fetch_array(MYSQLI_NUM)应该返回一个数字数组,您可以implode

如果这不起作用,请尝试迭代这样的结果以创建数组。 (taken from the docs):

while($row = $result->fetch_array())
{
    $MessengerArray[] = $row;
}