2012-07-05 3 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