如何从 2 个查询的结果中创建一个数组?
Posted
技术标签:
【中文标题】如何从 2 个查询的结果中创建一个数组?【英文标题】:How can I create an array from the results of 2 queries? 【发布时间】:2021-07-23 08:11:52 【问题描述】:我正在尝试从 2 个查询的结果创建一个数组,并将其全部发送到前端,但我被困在需要将第二个查询的结果推送到数组的地步,我尝试使用array_push
进行操作,但不起作用。
假设我们有这个例子,我需要将$query2
的结果包含到$return_arr
有什么想法吗?
<?php
header('Access-Control-Allow-Origin: *');
include "config.php";
$return_arr = array();
$query1 = "SELECT * FROM balance WHERE class='income' ORDER BY id DESC";
$query2 = "SELECT * FROM balance WHERE class='expense' ORDER BY id DESC";
$result1 = mysqli_query($conn,$query1);
while($row = mysqli_fetch_array($result1))
$id = $row['id'];
$description = $row['description'];
$date = $row['date'];
$euro = $row['euro'];
$who = $row['who'];
$class = $row['class'];
$return_arr[] = array("id_income" => $id,
"description_income" => $description,
"date_income" => $date,
"euro_income" => $euro,
"who_income" => $who,
"class_income" => $class
);
// Encoding array in JSON format
echo json_encode($return_arr);
【问题讨论】:
【参考方案1】:这是一个不同的查询:
SELECT *
FROM balance
WHERE class IN('income','expense')
ORDER
BY class
, id DESC
【讨论】:
【参考方案2】:喜欢 JS Bach 的回答。但也许您可以通过提及列的名称来提高性能。
SELECT column1, column2, column3 FROM balance WHERE class IN ('income','expense') ORDER BY class, id DESC;
【讨论】:
【参考方案3】:你也可以使用OR操作符
$query = SELECT * FROM balance WHERE class = "income" OR class = "expense" ORDER BY class, id DESC;
$result = mysqli_query($conn,$query);
$array = mysqli_fetch_array($result,MYSQLI_ASSOC);
您获取的记录已经是 $array
中的数组格式这在处理包含 1000 行记录的表时会更有效
【讨论】:
以上是关于如何从 2 个查询的结果中创建一个数组?的主要内容,如果未能解决你的问题,请参考以下文章
在javascript中创建对象数组以获得所需的结果[关闭]