【问题标题】:How can I create an array from the results of 2 queries?如何从 2 个查询的结果中创建一个数组?
【发布时间】: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);

【问题讨论】:

    标签: php mysql sql


    【解决方案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 行记录的表时会更有效

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-11-24
          • 1970-01-01
          • 2011-09-16
          • 1970-01-01
          • 2018-03-17
          • 2014-01-16
          • 1970-01-01
          相关资源
          最近更新 更多