Php 运行2个sql查询和1个查询,以将查询结果保存为.csv格式

Php 运行2个sql查询和1个查询,以将查询结果保存为.csv格式,php,mysql,Php,Mysql,在我的网站上,我有两个页面1)admin.php 2)csv.php。在admin.php页面中,下面的查询显示了数据库中的数据。在csv.php页面中,我使用相同的查询将数据保存为.csv格式,但无法保存 我决定在一个查询中运行相同的查询。这样我就可以得到查询结果并将其保存为csv格式 问题: 1) 如何对一个查询运行此查询 2) 以下查询正在成功显示数据。那么如何将其保存为.csv文件呢 我搜索了google,找到了许多结果,这些结果显示了如何用一个查询将数据保存为.csv格式。但您可以看到

在我的网站上,我有两个页面1)admin.php 2)csv.php。在admin.php页面中,下面的查询显示了数据库中的数据。在csv.php页面中,我使用相同的查询将数据保存为.csv格式,但无法保存

我决定在一个查询中运行相同的查询。这样我就可以得到查询结果并将其保存为csv格式

问题:

1) 如何对一个查询运行此查询

2) 以下查询正在成功显示数据。那么如何将其保存为.csv文件呢

我搜索了google,找到了许多结果,这些结果显示了如何用一个查询将数据保存为.csv格式。但您可以看到,我的查询中有2个while语句,那么如何将其保存为.csv格式?不知道:(

感谢并期待您的帮助。:)
注意:我是php和mysql的新手

$sqlagentdetails = "select * from users WHERE company_name != ''";
$rowresult = mysql_query($sqlagentdetails); 
while($row = mysql_fetch_array($rowresult, MYSQL_ASSOC))
{
    $pc1 = $row['pc1'];
    $pc2 = $row['pc2'];
    $pc3 = $row['pc3'];
    $pc4 = $row['pc4'];                      
    $emailAgent = $row['user_email'];                      
    $user_id = $row['id'];


$myQuery =  mysql_query("
 SELECT * 
   FROM user_property upr 
  WHERE (postcode = '$pc1' OR
         postcode = '$pc2' OR
         postcode = '$pc3' OR
         postcode = '$pc4') AND
         datediff(CURDATE(), upr.creation_date) <= 7 AND
         NOT EXISTS(SELECT ofr.property_id 
                      FROM offers ofr 
                     WHERE ofr.property_id = upr.property_id AND
                           ofr.agent_id IN(SELECT id 
                                             FROM users 
                                            WHERE company_name !=''
                                          )
                   )
ORDER BY property_id DESC");


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

    // more data are goes to here...     

    }
}        
$sqlagentdetails=“选择*来自公司名称!=”;
$rowresult=mysql\u查询($sqlagentdetails);
而($row=mysql\u fetch\u数组($rowresult,mysql\u ASSOC))
{
$pc1=$row['pc1'];
$pc2=$row['pc2'];
$pc3=$row['pc3'];
$pc4=$row['pc4'];
$emailAgent=$row['user_email'];
$user_id=$row['id'];
$myQuery=mysql\u查询(“
选择*
来自用户_属性upr
其中(邮政编码=“$pc1”或
邮政编码=“$pc2”或
邮政编码=“$pc3”或
邮政编码=“$pc4”)和
datediff(CURDATE(),普遍定期报告创建日期)
1) 如何对一个查询运行此查询

您不希望它作为一个查询运行。通常最好是有很多小的简单查询,而不是一个复杂的查询。事实上,我建议您更新代码,以便有更多的查询,例如“notexists”()的内容“不应作为子查询执行,它应是一个完全独立的查询,以提高性能

2) 以下查询已成功显示数据。那么如何将其保存为.csv文件

有两个部分,首先需要发送正确的HTTP头以触发CSV下载:

header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="export.csv";' );
然后以CSV格式打印数据:

while ($row = mysql_fetch_array($myQuery)) {
  $first = true;
  foreach ($row as $cell) {
    if ($first)
      $first = false;
    else
      print ',';

    print '"' . addslashes($cell) . '"';
  }
  print "\n";
}

注意:CSV格式不好,只能在某些版本的Microsoft Excel中使用。具体取决于用户居住的地区(例如:欧洲)它可能无法正常工作。但是,对于大多数版本的Excel,上面的内容都可以工作。除了避免使用CSV之外,没有什么好的解决方案。

那么,你到底有什么问题?如何组合这两个查询或如何创建CSV文件?@EhsanT谢谢你的回答。问题是..如何从这个查询创建CSV文件。我可以看出你已经是一个我们正在使用@Abhi Beckert发布的一些代码,但是你说你无法实现你的目标。那么你有没有遇到任何错误,或者发生了什么?你能解释一下吗?这不是将数据保存为csv格式。我只是将你的代码粘贴到
//更多的数据将被发送到这里…
@Babu你需要弄清楚为什么没有为自己工作。我发布的是正确的方法,检查每一行代码,找出它不起作用的原因。