gpt4 book ai didi

php - 将查询导出为 csv 需要改进

转载 作者:行者123 更新时间:2023-12-01 00:55:42 25 4
gpt4 key购买 nike

我正在构建一个代码,它可以帮助我检索查询并将其像 csv 一样导出,一切正常,但 id 的作用是,如果我转到/query.php,它会立即下载 csv 文件,而我想要点击下载。

你能帮我看看怎么做吗?

这是代码..

  $query = sprintf( 'SELECT * FROM hostess' );
$result = mysql_query( $query, $conn ) or die( mysql_error( $conn ) );

header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment;filename=export.csv' );

$row = mysql_fetch_assoc( $result );
if ( $row )
{
echocsv( array_keys( $row ) );
}

while ( $row )
{
echocsv( $row );
$row = mysql_fetch_assoc( $result );
}

function echocsv( $fields )
{
$separator = '';
foreach ( $fields as $field )
{
if ( preg_match( '/\\r|\\n|,|"/', $field ) )
{
$field = '"' . str_replace( '"', '""', $field ) . '"';
}
echo $separator . $field;
$separator = ',';
}
echo "\r\n";
}
?>

最佳答案

创建包含指向 CSV 生成脚本的链接的页面。

编辑

您可以创建一个简单的 HTML 表单,使用查询字符串将参数传递给 CSV 脚本。示例:

<form action="export.php" method="get" target="_blank">
<input type="text" name="param1">
<input type="text" name="param2">
...
<input type="submit">
</form>

您的 CSV 导出脚本几乎不需要修改:它应该处理查询字符串变量以构建查询。像这样的东西:

$where = "1 = 1";
if ($param1 = filter_input(INPUT_GET, "param1"))
{
$where .= " AND param1 = '" . mysql_real_escape_string($param1) . "'";
}
if ($param2 = filter_input(INPUT_GET, "param2"))
{
$where .= " AND param2 = '" . mysql_real_escape_string($param2) . "'";
}
...
$query = sprintf( 'SELECT * FROM hostess WHERE $where' );

当您提交表单时,它会请求导出页面并在查询字符串中传递参数(例如 export.php?param1=foo&param2=bar)。该脚本将发送一个 CSV 文件。在表单上添加了 target=_blank 属性,以便在新的选项卡/窗口中加载 CSV 文件。

关于php - 将查询导出为 csv 需要改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com