簡體   English   中英

如何從 2 個查詢的結果創建數組?

[英]How can I create an array from the results of 2 queries?

我正在嘗試根據 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);

這是一個不同的查詢:

SELECT * 
  FROM balance 
 WHERE class IN('income','expense') 
 ORDER 
    BY class
     , id DESC

就像 JS Bach 的回答一樣。 但也許您可以通過提及列的名稱來提高性能。

SELECT column1, column2, column3 FROM balance WHERE class IN ('income','expense') ORDER BY class, id DESC;

您還可以使用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 行記錄的表時,這會更有效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM