Php 运行2个sql查询和1个查询,以将查询结果保存为.csv格式
在我的网站上,我有两个页面1)admin.php 2)csv.php。在admin.php页面中,下面的查询显示了数据库中的数据。在csv.php页面中,我使用相同的查询将数据保存为.csv格式,但无法保存 我决定在一个查询中运行相同的查询。这样我就可以得到查询结果并将其保存为csv格式 问题: 1) 如何对一个查询运行此查询 2) 以下查询正在成功显示数据。那么如何将其保存为.csv文件呢 我搜索了google,找到了许多结果,这些结果显示了如何用一个查询将数据保存为.csv格式。但您可以看到,我的查询中有2个while语句,那么如何将其保存为.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格式。但您可以看到
注意:我是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你需要弄清楚为什么没有为自己工作。我发布的是正确的方法,检查每一行代码,找出它不起作用的原因。