【问题标题】:Export the searched result to .CSV, PHP MySQL [closed]将搜索结果导出到 .CSV、PHP MySQL [关闭]
【发布时间】:2026-02-10 10:50:01
【问题描述】:

我还是 PHP MySQL 的初学者。我正在寻找 exportingSearched Data.CSV 的最有效/最简单的方法。

场景:
我想要一个导出按钮,搜索结果可以导出到.CSV 之类的。

也许这个过程是这样的:

搜索您想要的任何数据>(单击搜索按钮)
如果没有找到结果 > 提示错误 > die
如果找到任何记录 > 显示 >(单击导出按钮)> 导出到 .CSV


这是我的搜索表单代码:

  <?php
  session_start();
  include_once "dbconnect.php";
  date_default_timezone_set('Hongkong');


  //LOG IN VALIDATION
  if(!isset($_SESSION['user']))
  {
  header("Location: index.php");
  }
  $res=mysql_query("SELECT * FROM accounts WHERE user_id=".$_SESSION['user']);
  $userRow=mysql_fetch_array($res);   

  ?>

  //HTML SEARCH FORM IS HERE
    //SEARCH BUTTON <br/><h5 style="float:right;"><button type="submit" class="btn btn-theme02" name="search" ><i class="fa fa-check">Search Customers</i></button></h5>

  //BUTTON FOR IMPORTING THE SEARCHED DATA INTO CSV
  //DONT HAVE FUNCTION YET DON'T KNOW HOW TO EXPORT THE DATA 
  <button type="submit" name="EXPORT">EXPORT TO CSV</button>


 <?php
 $number = 1;//NOT IMPORTANT, JUST USE TO NUMBERING THE ITEMS SEARCHED

 //TABLE 
 echo "<table class=\"table table-hover\" id=\"table1\" >";
          //TABLE ROW NAMES - SQL TABLE 
            echo " <hr><thead><tr>";
          echo "<th></th>";
            echo "<th>Globe Number</th>";
          echo "<th>Full Name</th>";
          echo "<th>State</th>";
          echo "<th>Country</th>";
          echo "<th>Virtual Number</th>";
          echo "<th>Date of Subscription</th>";
          echo "<th>Expiration Date</th>"; 
          echo "<th></th>";
          echo "</tr></thead>";       

          //FUNCTION OF SEARCH BUTTON 
          if (isset($_POST['search'])) {
          $globe = htmlentities(mysql_real_escape_string($_POST['globe']));
          $name = htmlentities(mysql_real_escape_string($_POST['name']));
          $vr = htmlentities(mysql_real_escape_string($_POST['virtual']));
          $ctry= htmlentities(mysql_real_escape_string($_POST['country']));


          if (empty($globe) && empty($name) && empty($vr) && empty($ctry) && empty($dateStarted)  && empty($dateExpired) 
            && empty($time) && empty($transaction) && empty($subs) && empty($status) && empty($remarks) && empty($year) && empty($month)) {
          echo '<script>alert(\'Select atleast 1 filter\')</script>'; 
          exit;        
         }

          //SEARCH CONDITIONS
          if (!empty($globe)) {
            $sql = "SELECT * FROM `subscribers` WHERE `globeNumber` =  '".$globe."' AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC ";

          }if (!empty($name)) {
           $sql = "SELECT * FROM `subscribers` WHERE  `fName` LIKE  '%".$name."%' OR `lName` LIKE  '%".$name."%'  AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC ";

          }if (!empty($vr)){
           $sql = "SELECT * FROM `subscribers` WHERE `virtualNumber` =  '".$vr."' AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC ";

          }if (!empty($ctry)){
           $sql = "SELECT * FROM `subscribers` WHERE `country` = '".$ctry."' AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC  ";


          //COMBINATION CONDITIONS
          // I MINIMIZE THE CONDITION FOR SEARCH HERE            
         } if (!empty($globe) && !empty($name)) {

          $sql = "SELECT * FROM `subscribers` WHERE `globeNumber` =  '".$globe."' AND `fName` = '".$name."' AND `lName` = '".$name."'   
           AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC ";

        } if (!empty($globe) && !empty($vr)) {

          $sql = "SELECT * FROM `subscribers` WHERE `globeNumber` =  '".$globe."' AND `virtualNumber` = '".$vr."'
           AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC ";

        } if (!empty($globe) && !empty($ctry)) {

          $sql = "SELECT * FROM `subscribers` WHERE `globeNumber` =  '".$globe."' AND `country` = '".$ctry."'
           AND `agentCode`='".$agent."' ORDER BY `dateStarted` DESC ";
      }

        //THE QUERY RUN HERE
        if ($result=mysql_query($sql)) {
            $query_num_rows = mysql_num_rows($result);

              //IF NO RECORD FOUND RUN THIS
               if($query_num_rows == 0){ 
                  echo "<script> alert('No Records Found, Please try again!')</script>"; 

        } else {

         while($row=mysql_fetch_array($result)){

          echo "<tbody><tr>";
          echo "<td>".$number."</td>";
          echo "<td>".$row['globeNumber']."</td>";
          echo "<td>".$row['lName'].", ".$row['fName']." ".$row['mName']."</td>";
          echo "<td>".$row['state']."</td>";
          echo "<td>".$row['country']."</td>";
          echo "<td>".$row['virtualNumber']."</td>";
          echo "<td>".$row['dateStarted']."</td>";
          echo "<td>".$row['dateExpired']."</td>";
          ++$number;//NOT IMPORTANT, JUST USE FOR NUMBERING THE ITEMS SEARCHED

          echo "</form></tr>";
          echo "string";
  }}}} ?>

PS:我仍在使用 MySQL,因为我想先熟悉一下。

【问题讨论】:

  • @Drew:是的,我报告了删除先生。还是宽大的先生?我的问题是How can I Export to csv the result from search form?
  • 我要求你至少显示一些你想要的示例输出,然后首先转向 mysql。而不是用这样的输出改进问题(说你看到的只是显示的 PHP 代码),并且堆栈上没有其他参考工作,你知道其余的
  • @Drew:我知道先生,我很快就会编辑这个。谢谢

标签: php mysql csv


【解决方案1】:

以下步骤将对您有所帮助。

  1. 创建用于检索搜索结果记录的函数
  2. 验证输入并调用此函数并以数组/对象的形式返回值
  3. 如果结果为空则返回false
  4. 显示提取的记录
  5. 如果“单击导出”使用一个导出标志提交相同的搜索值
  6. 检查您设置的标志并调用相同的搜索函数
  7. 为下载的 CSV 文件设置标题
  8. 使用分隔符(如“|”)打印结果或','

【讨论】:

  • 您能否提供一个此实现的工作示例?谢谢。