私はCodeIgniter v2.2.4を使用していますCSVにエクスポートするときにデータを操作しますか?
データベースクエリの結果を表すCSVファイルをエクスポート/ダウンロードするには、次のコードを検討してください。
CONTROLLER:
public function export_csv($id = NULL)
{
$this->load->dbutil();
$this->load->helper('download');
$query = $this->my_model->create_csv($id); // call the model
$data = $this->dbutil->csv_from_result($query, ',');
force_download($id . '.csv', $data);
}
MODEL:
public function create_csv($id)
{
$this->db->from('mytable');
$this->db->where('id', $id);
$this->db->select('
id AS `ID`,
full_name AS `Full Name`,
company_name AS `Company Name`,
phone AS `Phone Number`,
select_list AS `User Options`
', FALSE);
return $this->db->get();
}
上記のコードが動作している、しかしselect_list
値が0
、1
、又は2
であり、それは、CSVエクスポート中に挿入されます。これらの値を最終的なCSVファイルの意味のあるテキストに変更するにはどうすればよいですか?
例:
'DB value' => 'insert into CSV'
0 => 'N/A',
1 => 'foo',
2 => 'bar'
が何らかの理由でデータベースのエラーを取得中...作品...
私のために働いた正確な構文です。エラー番号:1064 - SQL構文にエラーがあります。 '= 1 THEN' foo 'WHEN = 2 THEN'バー 'ELSE' N/A 'END' 'User Options'、 '行1で使用する正しい構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください – Sparky
フィールドのデータ型が何であるかを確認してください。値を一重引用符で囲みます。 'WHEN = '1'' – DFriend
データ型は問題ではありません。 'CASE select_list WHEN = 1'が問題でした。 'CASE WHEN select_list = 1'を使用しなければなりませんでした。私の答えを見てください。 – Sparky