これは本当にシンプルでなければなりません...こことphp.netの例を見て、私はmysqlクエリーからレコードを取得し、csvフォーマットに変換してこのデータを私が作成したプログラムで使う変数。私は一時的なファイルを作成せずにこれを達成したいと思います。fputcsvは配列から1行だけ返す
public function export3() {
$order_data = array();
$order_data[] = array(
'order_id',
'email',
'telephone',
'shipping_address',
'payment_address',
'comment'
);
// Mysql returns data and is assigned to this array in the following format
$order_data[] = array(
'1',
'[email protected]',
'123456789',
'123 Lane',
'123 Lane',
'no comment'
);
$order_data[] = array(
'2',
'[email protected]',
'987654321',
'321 Lane',
'321 Lane',
'no comment'
);
$outstream = fopen("php://temp", 'r+');
foreach($order_data as $csv_data) {
fputcsv($outstream, $csv_data);
}
rewind($outstream);
$export_data = fgets($outstream);
fclose($outstream);
$response->output($export_data);
}
残念ながら、私は時折、「配列の文字列への」変換の苦情を取得し、それでもエラーなしで、私は(csv形式での)最初の配列ではなく、他の人を取得します。助言がありますか?ありがとう
「$ order_data」を使用していないのはなぜですか? – cwallenpoole
どのように?私は任意のアイデアを公開しています...実際に複数のクエリのデータを結合し、ダウンロード可能なCSVにエクスポートする必要があります。 (上記の例のヘッダーは除外しています) –