2017-03-04 12 views
0

私はそれが自動的にCSV形式ではなく、このような出力表示にエクスポートダウンロードケースを呼び出す:csvファイルにのみ値を表示する方法とそのフィールド名を追加する方法...!


Array 
    (
     [post_subject] => test 
     [post_feel] => 
     [post_cselect] => option01 
     [post_daselect] => option03 
     [post_dmpc] => dgfdg 
     [post_cmg] => trgbrt 
     [post_pkmg] => dfvdsf 
     [post_wfid] => gfddftg 
     [post_cpn] => fdgfdgd 
     [post_datee] => test 
     [post_pjn] => fdgfsddh 
     [post_fpn] => dgfhsdfd 
     [post_erselect] => option09 
     [post_wgw] => rettr 
     [post_aprfselect] => option11 
     [post_bb] => wcdfrsrd 
     [post_dtselect] => option13 
     [post_cgdselect] => option15 
     [post_txtselect] => option18 
     [post_barselect] => option19 
     [post_fselect] => option21 
     [post_iselect] => option23 
     [post_sselect] => option25 
     [post_trselect] => option27 
     [post_dmselect] => option29 
    )  

この私のコード:

case 'downloadd': 
$sql = 'SELECT forum_id 
     FROM ' . POSTS_TABLE . ' 
     WHERE post_id = ' . $post_id; 
$result = $db->sql_query($sql); 
$f_id = (int) $db->sql_fetchfield('forum_id'); 
$db->sql_freeresult($result); 

$forum_id = (!$f_id) ? $forum_id : $f_id; 

$sql = 'SELECT f.*, t.*, p.*, u.username, u.username_clean, u.user_sig, u.user_sig_bbcode_uid, u.user_sig_bbcode_bitfield 
     FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . ' f, ' . USERS_TABLE . " u 
     WHERE p.post_id = $post_id 
     AND t.topic_id = p.topic_id 
     AND u.user_id = p.poster_id 
     AND f.forum_id = t.forum_id "; 
if (!$sql) { 
    $user->setup('posting'); 
    trigger_error('NO_POST_MODE'); 
} 

$result = $db->sql_query($sql); 
$post_data = $db->sql_fetchrow($result); 
$testt = array_slice($post_data,96,37); 
$filename = print_r($testt); 

header("Content-type: text/csv"); 
header("Content-Disposition: attachment; filename={$filename}.csv"); 

outputCSV($testt); 
$db->sql_freeresult($result); 
break; 

値のみを表示する方法を、私を助けてくださいcsvファイルに追加して、そのフィールド名を追加する方法も...!

答えて

1

出力データの形式が正しくないという問題があります。 PHP配列をそのままエクスポートすることはできません。カンマ(または他の特殊文字)で区切られた文字列である可能性があります。

コードをこのように変更してください。それはあなたのために動作します

$output = ''; 
foreach (array_keys($testt) as $value) { 
    $output .= $value.','; 
} 
$output = rtrim($output,","); 
$output .= $value.'\n'; 

foreach ($testt as $key => $value) { 
    $output .= $value.','; 
} 
$output = rtrim($output,","); 


header('Content-Type: application/csv'); 
header('Content-disposition: attachment; filename="filename.csv"'); 
echo($output);  
exit; 
+0

私はindex.soの代わりに配列の値を表示したいと思います、どうすればいいですか? –

+0

あなたは与えられたコードから最初のループを削除してください。それが動作します。 –