2016-08-15 3 views
0

結果を取得すると、テーブル情報がなくなり、テーブルフィールド名が存在します。 これは別の問題です。すべての情報が1つの列にあります。 これは私のコードです:PHPでcsvにmysqlデータをエクスポートし、CSVファイルに情報を表示しません

<?php 

if(isset($_POST['sub_csv'])){ 
    $conn=mysql_connect("localhost","root",""); 
    mysql_select_db("school",$conn); 

    $filename='uploads/'.strtotime("now").'.csv'; 

    $fp=fopen($filename,"w"); 

    $sql=mysql_query("SELECT * FROM student"); 
    $num_rows=mysql_num_rows($sql); 
    if($num_rows >=1) 
    { 
    $row=mysql_fetch_assoc($sql); 

    $seperator=""; 
    $comma=""; 

    foreach($row as $name => $value) 
    { 
     $seperator .= $comma . '' .str_replace('','""',$name); 
     $comma=","; 
    } 
    $seperator .="\n"; 
    fputs($fp,$seperator); 
     fclose($fp); 
    } 

    else 
    { 
     echo 'No record in database'; 
    } 
} 
?> 

結果: enter image description here

答えて

0

CSVファイルを作成するために、直接fputcsv()関数を使用することができます。以下のサンプルコードを参照してPHPコードを変更してください。あなたは期待される結果を得るでしょう。読み以上の場合

// output headers so that the file is downloaded rather than displayed 
header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=data.csv'); 

// create a file pointer connected to the output stream 
$output = fopen('php://output', 'w'); 

// output the column headings 
fputcsv($output, array('Column 1', 'Column 2', 'Column 3')); 

// fetch the data 
mysql_connect('localhost', 'username', 'password'); 
mysql_select_db('database'); 
$rows = mysql_query('SELECT field1,field2,field3 FROM table'); 

// loop over the rows, outputting them 
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row); 

: 1. http://code.stephenmorley.org/php/creating-downloadable-csv-files/ 2. http://php.net/manual/en/function.fputcsv.php

+0

thanx、これは新しい問題です。csvファイルのpersian情報を表示していません。 選択クエリの前にこのコードを追加します。 mysql_query( 'set names "utf8"'); [結果画像] [1] [1]:http://i.stack.imgur.com/WJZHy.png –

0

を今、あなたは最初の行のみに $row=mysql_fetch_assoc($sql);

をフェッチあなたはしばらく使用してすべての行を一つずつフェッチする必要がありますそのようなループwhile($row=mysql_fetch_assoc($sql)){..}

提供したコードに基づいて:

<?php 

if(isset($_POST['sub_csv'])){ 
    $conn=mysql_connect("localhost","root",""); 
    mysql_select_db("school",$conn); 

    $filename='uploads/'.strtotime("now").'.csv'; 

    $fp=fopen($filename,"w"); 

    $sql=mysql_query("SELECT * FROM student"); 
    $num_rows=mysql_num_rows($sql); 
    if($num_rows >=1) 
    { 
    while($row=mysql_fetch_assoc($sql)){ 

    $seperator=""; 
    $comma=""; 

    foreach($row as $name => $value) 
    { 
     $seperator .= $comma . '' .str_replace('','""',$name); 
     $comma=","; 
    } 
    $seperator .="\n"; 
    fputs($fp,$seperator); 
    } 
     fclose($fp); 
    } 

    else 
    { 
     echo 'No record in database'; 
    } 
} 
?> 
0

thanx、これは新しい問題です。これは真ではありません。csvファイルのpersian情報を表示してください。私は選択クエリの前にこのコードを追加します:mysql_query( 'set names "utf8"'); [結果画像] [1] [1]:i.stack.imgur.com/WJZHy.png

関連する問題