首页 > 解决方案 > 数组只插入一行

问题描述

我正在尝试使用 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
    );
    }
    }

我究竟做错了什么?我也是这方面的菜鸟,所以请放轻松,谢谢。

标签: phpmysql

解决方案


$result2是一个mysqli_result对象,你不能在if语句中使用它。您应该改用它的num_rows属性,即

if ($result2->num_rows > 0) 

(代替if ($result2)


推荐阅读