我有这个代码工作但只有一半,它能够返回我需要的所有信息但是在返回时,其中一个JSON数组被返回两次,为什么会这样?我似乎无法弄明白为什么。
这是我的代码:
$rows = mysql_num_rows($res);
$array = array();
$i = 0;
while($row = mysql_fetch_array($res, MYSQL_NUM)) {
$array[$i] = (int)$row[0] . "\n";
$i++;
if ($i > $rows){
break;
}
}
$JsonArray = array();
for($i = 0; $i < $rows; $i++){
$q = "SELECT firstName, lastName, email from $mysql_database.$UsersTable WHERE idUser = $array[$i]";
$res = mysql_query($q, $connect) or die(mysql_error());
while($row = mysql_fetch_assoc($res)){
$new_array[] = $row; // Inside while loop
}
$JsonArray[$i] = $new_array;
}
echo json_encode($JsonArray);
结果如下:
我所需要的只是第二个和第三个但不知何故我不知道它为什么输出第一个两次。 另外,如何在JsonArray中更好地格式化结果?
答案 0 :(得分:0)
从我看到你试图做的,你正试图从数据库中获取查询的结果集。
您无需使用所有这些循环。您所要做的就是:
$q = "SELECT firstName,lastName,email from $mysql_database.$UsersTable WHERE idUser=$array[$i]";
$res = mysql_query($q,$connect) or die(mysql_error());
$new_array = mysqli_fetch_assoc($res);
mysqli_free_result($res);
每行都不需要while循环。