2016-03-21 17 views
0

hy! データベーステーブルのすべての情報をcsvファイルに抽出しました。 今、私は各行に見出しをつけようとしており、キー、値のペアのように表示させたいと考えています。 そのために、私は論理を作るが、それはうまくいかなかった。 可能な限り最適な解決策を提案してください。見出し行がCSVファイルに表示されません

$sql = "select * from log"; 
$result = mysqli_query($link, $sql) or die("Selection Error " . mysqli_error($connection)); 

$fp = fopen('logInfo.csv', 'w'); 

while($row = mysqli_fetch_assoc($result) && $row = fgetcsv($fp)) 
{ 
    $all_rows = array(); 
    $header = null; 

    if ($header === null) { 
     $header = $row; 
     continue; 
    } 
    $all_rows[] = array_combine($header, $row); 

    fputcsv($fp, $row);  
} 
+0

CSVファイルは、キー/値のペアを持っていない、単なる生データ..... fputcsv()を使用すると、配列の値だけが書き込まれます –

+0

ファイル内にヘッダのリストの最初の行があります –

+0

@ MarkBaker 各行にタイトルを付けるだけですか?どうやってやるの ? –

答えて

1

はあなたのCSVファイルの最初の行にヘッダ行をしたい場合は

$header = null; 
while($row = mysqli_fetch_assoc($result)) 
{ 
    if ($header === null) { 
     $header = array_keys($row); 
     fputcsv($fp, $header);  
    } 

    fputcsv($fp, $row);  
} 
+0

Thanx Sir。 それは私のために働いた! 神はあなたを祝福します –

2

あなたは毎回$headerをリセットしています。
これを試してみてください:

$header = null; 
while($row = mysqli_fetch_assoc($result)) 
{ 
    if ($header === null) { 
     $header = $row; 
     continue; 
    } 
    fputcsv($fp, $header); 
    fputcsv($fp, $row); 

}

+0

エラー:.. fputcsv($ fp、$ all_rows)行の文字列変換への配列。 –

+0

エラーを修正しました。しかし、私はあなたがCSVでどのくらい正確にそれらをしたいのか分かりません。 csvはキーと値のペアを保持しません。 –

+0

申し訳ありませんが、データベースからの各フィールドのタイトルを表示したいだけです –

関連する問題