2017-06-28 59 views
0

我在从我的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); 

回答

0

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

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

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