Php 仅插入一行的数组

Php 仅插入一行的数组,php,mysql,Php,Mysql,我正在尝试使用php在excel中导出数据库。但是while循环只在数组中插入一行值,导出的excel文件将只有一行数据 我使用一个嵌套的表回调循环来插入它的数据(如果不是空的话)。因此,基本上有两个数据库的值被导出到一个excel文件中。首先将数据存储在数组中,然后将其导出为excel文件 代码如下: $sql = "SELECT * FROM leads"; $result = mysqli_query($conn, $sql); $data = array();

我正在尝试使用php在excel中导出数据库。但是while循环只在数组中插入一行值,导出的excel文件将只有一行数据

我使用一个嵌套的表回调循环来插入它的数据(如果不是空的话)。因此,基本上有两个数据库的值被导出到一个excel文件中。首先将数据存储在数组中,然后将其导出为excel文件

代码如下:

   $sql = "SELECT * FROM leads";
   $result = mysqli_query($conn, $sql);
   $data = array();
    while ($row1 = mysqli_fetch_array($result))
    {
    if ($row1["status"] == "1") 
    {
    $status = "New";
    }
    if ($row1["status"] == "2") 
    {
    $status = "Assigned";
    }
    if ($row1["status"] == "3") 
    {
    $status = "Pending";
    }
    if ($row1["status"] == "4") 
    {
    $status = "Closed";
    }
    if ($row1["status"] == "5") 
    {
    $status = "Denied";
    }
    $id = $row1["id"];
    $sql2 = "SELECT * FROM callback WHERE lead_id=$id ORDER BY id DESC LIMIT 1";
   $result2 = mysqli_query($conn, $sql2);
    if ($result2)
    {
    while ($row2 = mysqli_fetch_array($result2))
    {


    $data[] = array(
    "Created" => $row1["curdate"], 
    "Customer Name" => $row1["cname"], 
    "Designation" => $row1["designation"],
    "Contact" => $row1["number"],
    "Company" => $row1["company"],
    "Address" => $row1["street"],
    "Landmark" => $row1["landmark"],
    "Zip" => $row1["zip"],
    "Products" => $row1["product"],
    "Last Callback" => $row2["callback"],
    "Last Visit" => $row2["vdate"],
    "Status" => $status
   );
   }
   }
   else
   {
    $data[] = array(
   "Created" => $row1["curdate"], 
    "Customer Name" => $row1["cname"], 
    "Designation" => $row1["designation"],
    "Contact" => $row1["number"],
    "Company" => $row1["company"],
    "Address" => $row1["street"],
    "Landmark" => $row1["landmark"],
    "Zip" => $row1["zip"],
    "Products" => $row1["product"],
    "Last Callback" => "NULL",
    "Last Visit" => "NULL",
    "Status" => $status
    );
    }
    }
我做错了什么?另外,我在这方面也是个傻瓜,所以,请对我放松点,谢谢。

$result2是一个mysqli\u结果对象,您不能在if语句中使用它。您应该使用它的属性,即

if ($result2->num_rows > 0) 

代替if$result2

mysqli_查询,只有在查询无法运行时才返回false,而在没有找到任何行时才返回false。我建议尝试使用一条带有简单左连接的SQL语句,而不是使用多条语句。嘿,这很管用!谢谢你的解释!你是最棒的。干杯:D