php - 如何在codeigniter中的一列中插入多个字段数据

标签 php mysql codeigniter loops

我有一个由多个复选框和输入字段组成的表单,我想将该数据插入到表的单列中,这是我的表单:

 <div id="container">
        <h1>property Detail</h1>
    <form action="" method="post">
    <table>
    <tr>
    <td> 
    Possesion
    <input type="checkbox" name="feature[]" value="possesion">
    </td>
    <td> 
    Possesion1
    <input type="checkbox" name="feature" value="possesion1">
    </td>
    <td> 
    Possesion2
    <input type="checkbox" name="feature" value="possesion2">
    </td>
    <td> 
    Possesion3
    <input type="checkbox" name="feature" value="possesion3">
    </td>
    <td> 
    Possesion4
    <input type="checkbox" name="feature" value="possesion4">
    </td>
    </td>
    </tr>

    <tr> 
    <td> <input type="submit" name="submit" value="submit"></td>
    </tr>
    </table>
    </form>

    </div>

这是我的 Controller :

 function index(){
            $this->load->view('form');

            if($_POST){


            $data_feature  = array (
           'feature' => $_POST['feature']
             );

            $data['var']= $this->Mdata->p_detail($data_feature);
            }   

        }

这是我的模型:

   function p_detail($data_feature){
             $this->db->insert('feature',$data_feature);
             return $this->db->insert_id();


}

我在表中只获取一个特征值,我想获取用户选中的复选框的所有值。

问候

最佳答案

最好的保存方法是json_encode,将数据制成json字符串。保存数据的方法有很多,如下所示:

首先更正 html,使所有同名字段都作为数组,如下所示:

<input type="checkbox" name="feature[]" value="possesion">

方法一:

将数据作为 json 字符串保存:

$this->db->insert('feature',json_encode($data));//data is an array need to insert()

方法2:

将数据作为序列化数组:

$this->db->insert('feature',serialize($data));

方法3:

将数据数组设置为字符串:

$this->db->insert('feature',implode(",",$data));

如果您想逐行插入,则在循环中迭代发布的值,如下所示:

function index(){

            $this->load->view('form');

            if($_POST){

                $data_feature  = $_POST['feature'];

                $data = [];
                foreach($data_feature as $f_key => $f_value){

                    $data[$f_key]['var']= $this->Mdata->p_detail($f_value);

                }

            }   

        }

你的模态用法为;

function p_detail($data_feature){

             $this->db->insert('feature',$data_feature);//inserts into a single column 
             return $this->db->insert_id();//returns last inserted id

}

关于php - 如何在codeigniter中的一列中插入多个字段数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42525186/

相关文章:

php - 使用 preg_match 将字符串提取到 : & | characters 之间的数组中

javascript - PHP 代码在 chrome 中返回空,在 firefox 中返回值,我该如何调查原因?

PHP - 提交数据枚举组合按钮

python - 我可以用少于 2 个查询和 1 个循环得到 "number of users who have created their first object since -date-"吗?

mysql - 如何使用 MYSQL 选择具有限制的表并将外部限制返回到名为 'other' 的记录中

php - SQL Like 只接受 "context"

php - Polylang WordPress 插件自定义字符串翻译无法按预期方式工作

mysql - 根据排名过滤

mysql - 使用 codeigniter 插入和选择阿拉伯语

codeigniter 查看、添加、更新和删除