繁体   English   中英

导出的CSV表中的字段顺序不正确

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM