0

データベース内の特定のテーブルからダウンロードするためのcsvを作成する関数を追加しようとしています。部分的に機能していますが、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;

$ result出力から列invhead_idとnoteを除外しましたが、$ values出力からもそれらを除外する必要がありますが、これは動作させることができないビットです。誰かが私を正しい方向に向けることができますか?

ありがとう

4

1 に答える 1

2

最も簡単な方法は、select *ではなく、名前で列を選択することです。

より簡単な方法はありませんが、2つの配列を比較し、最初の配列に基づいて不要な配列を破棄するphp関数を作成することもできます。そして、私の最初のアイデアを使用する必要があります。

SELECT field1, field2, field7 FROM table
于 2012-07-05T15:44:35.137 に答える