2012-07-05 51 views
0

我正在尝试添加一个函数,该函数将创建一个用于从db中的某个表下载的csv。我已经部分工作,但无法弄清楚如何从csv的行部分中排除某些列。这是到目前为止我的代码,从MySQL中排除列CSV导出

$host = 'xxx'; 
$user = 'xxxx'; 
$pass = 'xxxx'; 
$db = 'xxxx'; 
$table = 'headers'; 
$file = 'export'; 

$filename = $file."_".date("Y-m-d_H-i",time()); 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error()); 
mysql_select_db($db) or die("Can not connect."); 

$result = mysql_query("SHOW COLUMNS FROM ".$table." WHERE Field NOT IN ('invhead_id', 'note');"); 
$i = 0; 
if (mysql_num_rows($result) > 0) 
{ 
    while ($row = mysql_fetch_assoc($result)) 
    { 
     $csv_output .= $row['Field'].", "; 
     $i++; 
    } 
} 
$csv_output .= "\n"; 

$values = mysql_query("SELECT * FROM ".$table.""); 
while ($rowr = mysql_fetch_row($values)) 
{ 
    for ($j=0;$j<$i;$j++) 
    { 
     $csv_output .= $rowr[$j].", "; 
    } 

    $csv_output .= "\n"; 
} 


print $csv_output; 
exit; 

我已经排除在$结果输出invhead_id并注意列,但也需要从$值输出exlude他们以及然而,这是位我不能去工作。任何人都可以将我指向正确的方向吗?

感谢

回答

2

最简单的方法是通过名称来选择,而不是你的栏选择*

有没有更简单的方法,但你也可以写一个PHP函数,比较你的两个数组,并丢弃那些你不希望基于第一个数组,并且....你应该使用我的第一个想法。

SELECT field1, field2, field7 FROM table 
+0

非常感谢,那就像一个魅力。 – user1098178 2012-07-05 15:49:32