在我的网页上我有2页。 1)admin.php 2)csv.php。在admin.php页面中,查询后显示来自db的数据。在csv.php页面中,我使用相同的查询将数据保存为.csv格式,但无法保存。
我决定在ONE QUERY中运行相同的查询。这样我就可以获得查询结果并将其保存为csv格式。
问题:
1)如何将此查询运行到一个查询?
2)以下查询成功显示数据。那么如何将其保存为.csv文件?
我搜索谷歌,发现了很多结果,显示如何只用一个查询将数据保存为.csv格式。但是你看到我在我的查询中有2个声明然后如何将其保存为.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...
}
}
答案 0 :(得分:0)
1)如何将此查询运行到一个查询?
您不希望它作为一个查询运行。通常,有很多小的简单查询而不是一个复杂的查询会更好。事实上,我建议你更新代码以获得更多查询,例如“not exists()”的内容不应该作为子查询完成,它应该是一个完全独立的查询来提高性能。
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之外,没有好的解决方案。