ダウンロード可能な CSV に MySQLi クエリを書き込もうとしています。次のヘッダーは、CSV のストリームを開きます。
$fileName = ''; //empty file name, file name is cast later
header("Cache=Control: must-revalidate, post-check=0, pre-check=0");
header('Content-Description: File Transfer');
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename={$fileName}");
header("Expires: 0");
header("Pragma: public");
$fh = @fopen( 'php://output', 'w' );
この下には、クエリの各行をクエリして、CSV ファイルの新しい行にキャストしようとする次のコードがあります。
if(isset($_POST["Submit"]) && ($_POST['Weight'] == 'Weight')){
$fileName .= 'OutputWeightNull.csv';
$query = mysqli_query($conn, 'SELECT * FROM `Some_Table` WHERE WEIGHT = 0 OR weight IS NULL')or die(mysql_error());
$result = mysqli_fetch_array($query) or die(mysql_error());
$headerDisplayed = false;
foreach ($result as $data){
if (!headerDisplayed){
fputcsv($fh, array_keys());
$headerDisplayed = true;
}
fputcsv($fh, $data);
}
}
CSV は必要に応じてブラウザーにダウンロードされますが、空のように見え、クエリ結果が CSV に送信されません。なぜこれが正しいのか、誰かが私を正しい方向に向けることができますか.
これは、Hello World よりも複雑な PHP スクリプトへの私の最初の試みです。答えが非常に単純または明白である場合はお詫び申し上げます。