0

複数の選択ボックスから出てきて、変数に入れられてからデータベースに入れられるデータをどのように挿入するかを理解するための助けが必要でした。

私のデータベーステーブルは次のように構成されています-テーブル:prd_attr

ID | Product_ID | name | value
-------------------------------
1  | 3          | size | large
2  | 3          | size | medium

たとえば、という名前の複数の選択ボックスがsizes[]あり、管理者がデータベースに入力する製品の2つのサイズを選択するとします。これらの値をコントローラーで取得して、変数に入れることができます。

$sizes = $_GET['sizes'];

その変数をモデルに渡します。そこに到達したら、次のようにMySQLクエリとしてデータを挿入できます。

foreach ($sizes as $s)
{
    $query = mysql_query("insert into prd_attr ('name', 'value') VALUES ('size','$s')");
}

しかし、mysql_ *は非推奨であることがわかりました。アクティブレコードを提供するフレームワークを使用しているので、それを利用したいと思います。Active Recordの基本は知っていますが、これは任意の数の値を保持できる変数のforeachループであるため、ActiveRecordにforeachステートメントを含める方法がわかりません。

誰か説明してもらえますか?助けてくれてありがとう。

4

2 に答える 2

2

codeigniterでバッチ挿入を使用することもできます:

これを試して:

function insert_sizes()
{
    $sizes  =   $this->input->get('sizes');
    foreach ($sizes as $s)
    {
        $data[] = array(
          'name' => 'size',
          'value' => $s
        );
    }
    $this->db->insert_batch('prd_attr',$data);
}

詳細については、http:
//ellislab.com/codeigniter/user-guide/database/active_record.htmlをご覧ください。

于 2013-02-13T15:39:07.093 に答える
1

これは、ModelofCodeigniterで使用できます。これが方法です

function insert_sizes()
{
    $sizes  =   $this->input->get('sizes');
    $data['name']   =   'size';
    foreach ($sizes as $s)
    {
        $data['value']  =   $s;
        $this->db->insert('prd_attr',$data);
    }
}   
于 2013-02-13T14:02:00.393 に答える