2017-03-04 24 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

你只需從我提供的代碼中刪除第一個循環。它會工作。 –

相關問題