[英]Incorrect field order in exported CSV table
我有一个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";
?>
我认为这只是平庸的责备,但我看不到.....请帮助任何人。
感谢您的关注。 我找到了解决方案。 问题是这行的顺序相反:
$value = ';' . $value ;
好的一本:
$value = $value . ';' ;
最好的祝福!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.