我到处找,找不到解决办法.这是我的代码,有问题的地方是如何创建一个大型的每一行数组:(注释行是导致错误的那一行)。
$result = mysqli_query($con, "SELECT * FROM `Orders` WHERE `userID` = " . $objData->userid . " ORDER BY `recievedDate` DESC LIMIT 10");
$resArray = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_row())
{
$tempArr = array("orderid" => $row[0], "orderdate" => $row[2], "orderstatus" => $row[4]);
//$resArray = array_push((array)$resArray, (array)$tempArr); <== problematic line commented out
}
echo json_encode($resArray);
} else {
echo "";
}谢谢!
发布于 2013-11-15 15:56:08
简单的答案是将$temparr数组推到$resArray上,如下所示:
$resArray[] = $tempArr;注意,如果您真的想使用array_push(),也可以使用它。
不知道您的所有查询都返回了什么,但您知道您也可以只使用将查询结果作为数组吗?
$resArray = $result->fetch_array(MYSQLI_ASSOC);如果您的查询返回的比数组中需要的要多,只需限制查询:
$result = mysqli_query($con, "SELECT orderid, orderdate, orderstatus FROM `Orders` ...");
$resArray = $result->fetch_array(MYSQLI_ASSOC);完成了!
发布于 2013-11-15 16:08:31
除了其他重要方面之外,您还分配了array_push $resArray = array_push((array)$resArray, (array)$tempArr)的结果,因此json_encode($resArray)获得的是一个数字,而不是所需的数组。
https://stackoverflow.com/questions/20005071
复制相似问题