0

ここにこのクエリがあり、これがcsvに出力する方法です。誰か助けてください。そこはごちゃごちゃしていて、Excel として印刷したほうがいいので、いくつかのバージョンを試してみましたが、odbc クエリを使用しているため、オンラインで見つけたサンプルに適応させるのが少し難しくなっています。 .

$result = "SELECT forma.*, SMS_MONTIME.IDTICKET,SMS_MONTIME.MBYLLUR,
SMS_MONTIME.time_added FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE 
forma.data_fillim >= '$df' AND forma.data_fillim <= '$dm' ORDER BY forma.id DESC"; 
$user_query = odbc_exec($connection, $result) or die(odbc_error());
//While loop to fetch the records
while($row = odbc_fetch_array($user_query))
{
$contents.=$row['klienti'].",";
$contents.=$row['id'].",";
$contents.=$row['tekniku_emer'].",";
$contents.=$row['telefoni'].",";
$contents.=$row['data_fillim'].",";
$contents.=$row['difekti'].",";
$contents.=$row['tekniku_mesazh'].",";
$contents.=$row['shenime'].",";

}

// remove html and php tags etc.
$contents = strip_tags($contents); 

//header to make force download the file
header("Content-Disposition: attachment; filename=Kondicioner".date('d-m-Y').".csv");
print $contents;
4

1 に答える 1

1

csv を出力するより良い方法は、fputcsv 関数を使用することです。

<?php
$result = "SELECT forma.*, SMS_MONTIME.IDTICKET,SMS_MONTIME.MBYLLUR,
SMS_MONTIME.time_added FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE 
forma.data_fillim >= '$df' AND forma.data_fillim <= '$dm' ORDER BY forma.id DESC"; 
$user_query = odbc_exec($connection, $result) or die(odbc_error());
//While loop to fetch the records
header("Content-Disposition: attachment; filename='Kondicioner".date('d-m-Y').".csv'");
$fp = fopen("php://output","w");
// here you set up your header
fputcsv($fp, array("klienti","id","tekniku_emer","telefoni","data_fillim","difekti","tekniku_mesazh", "shenime");
while($row = odbc_fetch_array($user_query))
{
   $row = array_map("strip_tags", $row);
   fputcsv($fp, array($row['klienti'],$row['id'],
                      $row['tekniku_emer'],$row['telefoni'],
                      $row['data_fillim'],$row['difekti'],
                      $row['tekniku_mesazh'],$row['shenime']));

}
fclose($fp);
于 2013-07-10T07:34:45.367 に答える