我一直在寻找并且无法获得任何解决方案...... 这是我的代码,问题在于如何创建1个大型数组的每个sql-row数组: (注释掉的行是导致错误的行。)
$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 "";
}
谢谢!
答案 0 :(得分:2)
除了其他重要方面,您还要分配array_push $resArray = array_push((array)$resArray, (array)$tempArr)
的结果,因此json_encode($resArray)
会得到一个数字,而不是您需要的数组。
答案 1 :(得分:1)
简单的答案是将$temparr
数组推送到$resArray
,如下所示:
$resArray[] = $tempArr;
请注意,如果您真的想要,也可以使用array_push()
。
不确定您的所有查询都返回了什么内容,但您知道您也可以get your query results as an array开始吗?
$resArray = $result->fetch_array(MYSQLI_ASSOC);
如果您的查询返回的数量超过了数组中所需的数量,请限制查询:
$result = mysqli_query($con, "SELECT orderid, orderdate, orderstatus FROM `Orders` ...");
$resArray = $result->fetch_array(MYSQLI_ASSOC);
完成!