2010-11-27 39 views
0

私は構造が同じような配列を持っています$data = array{0=>'abc',1=>xyz,2=>tqs}PHPでcsvファイルに配列値を書き込む方法は?

これらの値をcsvファイルに書き込む必要があります。私は第1列にすべての値を表示する必要があります。

以下

は、私が使用していたコードですが、毎回私はそれを実行する私は、ファイルの最後の値を取得する:

for ($c=0; $c < $num; $c++) { 
     echo $data[$c]; 
    echo $query = "select prod_sku,prod_name 
    from 
     tbl_product 
    where 
    prod_sku = '".$data[$c]."'"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_array($result); 
    if(empty($row)){ 
    print_r($row); 
    echo 'test'; 
    $fp = fopen("file.csv", "w"); 
    print_r($data[0]); 

     fputcsv($fp, $data[0]); 
     fclose($fp); 


    } 

どのように私はこの使用してPHPを達成することができますか?

答えて

5

問題は、ループの中でfopenを実行しているため、ループが実行されるたびにファイルが書き直されることです。 fopenfcloseをループ外に移動すると機能します。このような; MySQLを使用する場合は

$fp = fopen("file.csv", "w"); 
for ($c=0; $c < $num; $c++) 
{ 
    $query = "select prod_sku,prod_name from tbl_product where prod_sku = '".$data[$c]."'"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_array($result); 

    fputcsv($fp, $data); 
} 
fclose($fp); 
0

あなたはSELECT ... INTO OUTFILE使用できます。

SELECT prod_sku, prod_name 
INTO OUTFILE '/tmp/products.csv' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\n' 
FROM tbl_product 
WHERE 1 

http://dev.mysql.com/doc/refman/5.0/en/select.html

関連する問題