我在从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 :(得分:0)
fetch_array()
默认情况下每行返回两个数组 - 一个关联数组和一个数字数组,这就是为什么你只看到第一行中的两个数组。使用fetch_array(MYSQLI_NUM)
应该返回一个数字数组,您可以implode
。
如果这不起作用,请尝试迭代这样的结果以创建数组。 (taken from the docs):
while($row = $result->fetch_array())
{
$MessengerArray[] = $row;
}