2016-10-25 1 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 

감사합니다.

답변

0

Click for Reference이 잘 나는 그것을 할 수있는 2 가지 방법을 발견했다 ... PHP의 fputcsv()를 사용하여 헤더를 추가합니다. 1

: 방법

는 CSV를 생성 한 후 나는 그것을 다시 작성합니다. 이 같은

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

두번째 방법 (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

+0

감사입니다 회신하지만 나는 어떤 고리를 통과하고 싶지 않다. 거대한 데이터로 인해 foreach 루프를 사용하여 데이터베이스가 손상됩니다. 그러나 fputcsv()를 사용하면 다른 필드 값을 삽입 할 때 foreach 루프가 필요합니다. 어떤 방법이 있습니까? –

관련 문제