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 Records 的框架,因此我想利用它。我知道 Active Record 的基础知识,但由于这是一个针对可以保存任意数量值的变量的 foreach 循环,所以我不知道如何在 Active Records 中包含 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

您可以在 Codeigniter 模型中使用它。这是一个方法

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 回答