0

空白のレコードまたは空白以外のレコードが渡されるかどうかに基づいて、「レコードの変更」ページと「新しいレコード」ページに同じ HTML コードを使用する自作の LAMP アプリがあります。現在、MySQL テーブルから単一のレコードを選択し、各フィールド (名前) を手動で NULL に設定して、空のレコードを作成しています。これを行うためのより良い方法が必要ですが、必要なものを見つけるための検索用語はあまりにも一般的です. mysql_fetch_array や get_class_vars などの使用を検討しましたが、それらを機能させることができません。これは、私が少しマニュアルの少ないものに置き換えようとしているものです:

// Select a row, any row... (using CodeIgniter)
$q = $this->db->get($this->config->item('db'),1);
// For each ... um ... one ... row, add it to $data
foreach ($q->result() as $row) {
    $data[] = $row;
}
// set each **KNOWN** field to NULL
$data[0]->column1 = NULL;
$data[0]->column2 = NULL;
...

私はそれが汚いハックであることを知っていますが、うまくいきます。これを行う「正しい」方法は何ですか?

4

2 に答える 2

0

1行しか取得していない場合は、 resuls() & 役に立たない foreach ループの代わりに ->row() メソッドを使用することをお勧めします

例えば:

$row = $this->db->select('*')->from('table')->get()->row();

今あなたの問題に取りかかると、このようなものを使用しているフィールドを定義する必要があります

$fields = array('id', 'name', '...etc');

次に、このようなことをして、利用できない場合は空にします

foreach ( $fields as $f ) $data[$f] = isset($row->$f) ? $row->$f : NULL;

これにより、すべてのフィールドが $data で使用可能になり、ビューに渡すことができます。

于 2013-09-22T13:33:08.113 に答える