2011-02-14 40 views
2
$result = mysql_query("show columns from mash"); 
for ($i = 0; $i < mysql_num_rows($result); $i++) { 
    $colArray[$i] = mysql_fetch_assoc($result); 
    $fieldArray[$i] = $colArray[$i]['Field']; 
} 
fputcsv($fp,$fieldArray); 

要抓取mysql列名,然後將它們輸出到創建的CSV頂部。更改mysql列名與FPutCSV一起使用()

但是,我知道什麼是列名都將是,我怎麼可以改變它們在CSV輸出?

即,如果顯示列輸出:ID,字段1,字段2,字段3,怎樣才能讓這些ID,場1,場2,場3不僅僅是利用,而是選擇了他們將要...

回答

1

你倒是有可能已列到標籤,這將使該腳本特定於數據庫的列表:

$labels = array(
    'col_name'=>'Column 1', 
    'id'=>'User ID' 
); // and so on 

$result = mysql_query("show columns from mash"); 
for ($i = 0; $i < mysql_num_rows($result); $i++) { 
    $colArray[$i] = mysql_fetch_assoc($result); 
    $fieldArray[$i] = $labels[$colArray[$i]['Field']]; 
} 
fputcsv($fp,$fieldArray); 

OR,你就必須做一個數據庫,這種元數據。它可以有三個字段:source_table,source_column,column_label。這增加了另一個查詢組合,但會允許代碼被製作爲通用的。

的最後途徑是使用一些簡單的命名約定的隔膜,如下劃線(_),然後刪除下劃線並應用標題情況。 field_1變爲「字段1」,「user_id」變爲「用戶ID」等等。

$result = mysql_query("show columns from mash"); 
for ($i = 0; $i < mysql_num_rows($result); $i++) { 
    $colArray[$i] = mysql_fetch_assoc($result); 
    $fieldArray[$i] = _title_case_function_(str_replace('_', ' ', $colArray[$i]['Field']])); 
} 
fputcsv($fp,$fieldArray);