2016-10-25 8 views
-1

USRNAME、USER PROFILE、EMAILなどのカスタムヘッダーを使用してCSVを生成しようとしています。アウトファイルに使用するときにCSVでヘッダーを追加する方法

これは私が使用しているコードです。

$path = getcwd() . '/uploads/data.csv' ; 
$sql = "select username, CONCAT('<a href =\"$profile',username,'\">',username,'</a>') as profile_url ,email from `engine4_user` LIMIT 5000 into outfile '$path' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' "; 

しかし、カスタム値のヘッダーを追加する方法や、DB値の前にカスタム行を追加する方法がわかりません。これらのフィールドを追加するのを手伝ってください。

I wants a CSV that will out put like: 
USERNAME , PROFILE , EMAIL 
Jonson1 , http://mysite/profile/jonson1 , [email protected] 
Jonson2 , http://mysite/profile/jonson2 , [email protected] 
Jonson3 , http://mysite/profile/jonson3 , [email protected] 
Jonson4 , http://mysite/profile/jonson4 , [email protected] 

Now I generate : 
Jonson1 , http://mysite/profile/jonson1 , [email protected] 
Jonson2 , http://mysite/profile/jonson2 , [email protected] 
Jonson3 , http://mysite/profile/jonson3 , [email protected] 
Jonson4 , http://mysite/profile/jonson4 , [email protected] 

I need to add 
USERNAME , PROFILE , EMAIL 

ありがとうございます。 PHPの

答えて

0

まあ、私はそれを行うには2つの方法を発見しました。

第1の方法:

CSVを生成した後、書き換えます。

$file = fopen($path,'r+'); //This to open the CSV 
fputcsv($file,array(USRNAME , USER PROFILE , EMAIL)); //This to write a new row 
このような

第二の方法(UNION ALLを使用して):私は、クエリを使用して確認のための第二の方法を使用しています

$sql = "SELECT 'New user name', 'profile name', 'story title', 'story link', 'link to delete article' 
      UNION ALL 
      SELECT `engine4_users`.username, 
      CONCAT(`engine4_users`.username,'[$profile',`engine4_users`.username,']') as profile_url , `engine4_blog_blogs`.title, 
      CONCAT('$blog_url',`engine4_users`.user_id,'\/',`engine4_blog_blogs`.blog_id) as blog_url , 
      CONCAT('$blog_url','delete/',`engine4_blog_blogs`.blog_id) as delete_url 
      FROM engine4_blog_blogs INNER JOIN `engine4_users` ON `engine4_blog_blogs`.owner_id = `engine4_users`.user_id WHERE `engine4_users`.level_id = 4 AND `engine4_blog_blogs`.creation_date >= '$prevDate' into outfile '$path' FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n\r' "; 

を直接史上最良の方法は、のために:)

0

(fputcsvを使用して、ヘッダーを追加します)... Click for Reference

+0

おかげで返信はしていますが、私はループを通過したくありません。膨大なデータのために、foreachループを使用してデータベースがクラッシュしています。しかし、fputcsv()を使うと、他のフィールド値を挿入するためにforeachループが必要になります。何か方法はありますか? –

関連する問題