简体   繁体   中英

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

I'm trying to create an array from the results of 2 queries, and send it all together to front-end, but I'm stuck to the point where I need to push the results of the second query to the array, I tried to do it using array_push but doesn't work.

Let's say we have this example, and I need to include the results of $query2 to $return_arr

Any ideas?

<?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);

Here's a different query:

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

Like JS Bach answer. But maybe you could speed up performance by mention the column's name.

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

You can also make use of OR operator

$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);

Your fetched records will already be in an array format in $array

This can be more effective when dealing with tables having records in 1000s of rows

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM