【发布时间】:2016-11-29 19:10:42
【问题描述】:
我有一个 php 导出文件,它工作正常,可以根据需要导出数据,但是在导出的 CSV 文件表字段中不正确,如下图所示:
php代码为:
<?php
session_start();
?>
<?php
header('Content-Disposition: attachment; filename="befizetesek.csv"');
$hostname = "localhost";
$dbusername = "username";
$dbname = "dbname";
$dbpassword = "password";
$dbhandle = ($GLOBALS["___mysqli_ston"] = mysqli_connect($hostname, $dbusername, $dbpassword))
or die("Nem sikerült kapcsolódni az adatbázishoz");
$selected = ((bool)mysqli_query($dbhandle, "USE " . $dbname))
or die("Nincs kiválasztva adatbázis tábla");
$query ="SELECT
VU.first_name AS 'Befizeto neve',
VU.email AS 'Befizeto tagkodja',
VI.order_item_name AS 'Befizetett idoszak',
VO.order_total AS 'Befizetett osszeg',
VO.created_on AS 'Befizetes datuma',
VO.order_number AS 'Befizeto azonosito'
FROM
m1uzl_virtuemart_orders VO INNER JOIN
m1uzl_virtuemart_order_items VI ON
VO.virtuemart_order_id = VI.virtuemart_order_id INNER JOIN
m1uzl_virtuemart_order_userinfos VU ON
VI.virtuemart_order_id = VU.virtuemart_order_id
WHERE
VO.order_status='C' AND
(VO.created_on >= STR_TO_DATE ('" . $_SESSION["tol"] . "', '%Y-%m-%d')
AND VO.created_on <= STR_TO_DATE ('" . $_SESSION["ig"] . "', '%Y-%m-%d'))";
$export = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die ( "Sql error : " . ((is_object( )) ? mysqli_error( ) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) );
$fields = (($___mysqli_tmp = mysqli_num_fields( $export )) ? $___mysqli_tmp : false);
for ( $i = 0; $i < $fields; $i++ )
{
$header .= ((($___mysqli_tmp = mysqli_fetch_field_direct( $export , $i )->name) && (!is_null($___mysqli_tmp))) ? $___mysqli_tmp : false) .";" ;
}
while( $row = mysqli_fetch_row( $export ) )
{
$line = '';
foreach( $row as $value )
{
if ( ( !isset( $value ) ) || ( $value == "" ) )
{
$value = "";
}
else
{
$value = str_replace( ';' , ';' , $value );
$value = ';' . $value ;
}
$line .= $value;
}
$data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );
if ( $data == "" )
{
$data = "\n(0) Nincs találat!\n";
}
header("Content-type: application/octet-stream");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
?>
我认为这只是一个平庸的指责,但我看不到.....请帮助任何人。
【问题讨论】:
-
为什么要重新实现所有代码以正确导出 csv?有一个函数可以处理正确的转义,你完全忽略了。
标签: php csv export-to-csv