无法在数据库中插入多个复选框数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在数据库中插入多个复选框数据相关的知识,希望对你有一定的参考价值。

更新。我在数据库中插入多个复选框数据时遇到问题。

这是我的看法

 <?php 
            $i = 0;
            $qArr = array();
            $qArrc = 0;
            $qArr1 = array();
            $qArrc1 = 0;
            $uArr = array();
            $u = 0;
            foreach($questions->result() as $q){ ?>
                <input type="checkbox" name="check[<?php echo $i; ?>]" value="<?php echo $qArr[$qArrc++] = $q -> questions; ?>"> <?php echo $q->questions; ?> <br>
                <input class="form-control" value="<?php echo $uArr[$u++] = $this->session->userdata('user_id'); ?>" name="hidden[<?php echo $i; ?>]" type="hidden">
                <input class="form-control" value="<?php echo $qArr1[$qArrc1] = $q->id; ?>" name="hidden1[<?php echo $i; ?>]" type="hidden">
            <?php 
            $i++;                               
            }?>
            <button type="submit" name="submit" class="btn btn-primary">Submit</button>

这是我的控制器

                for($i = 0; $i<count($this->input->post('check')); $i++){
                $data1 = array(  
                    'question' => $this->input->post('check')[$i],
                    'speaker_id' => $this->input->post('hidden')[$i],
                    'question_id' => $this->input->post('hidden1')[$i]
                );  
                $this->input->post('submit');  

                     $this->Speaker_Model->insert_speakerfeedback($data1);  


            }redirect('speaker/createfeedback');

这是我的模特

      public function insert_speakerfeedback($data1){
        $this->db->insert("speakerdata", $data1);
    }
答案

修改你的for循环:

for($i = 0; $i<count($this->input->post('check')); $i++){

改为使用foreach

foreach ($this->input->post('check') as $i => $value) {

因此,如果您跳过某个复选框,它将阻止获取未定义的索引。并且重定向线应该在循环之外。

对于批量插入,您可以使用insert_batch函数。

在循环内,更改:

$data1 = array(

$data1[] = array(

所以它不会覆盖每次迭代。

在模型上,更改:

$this->db->insert("speakerdata", $data1);

至 :

$this->db->insert_batch("speakerdata", $data1);

以上是关于无法在数据库中插入多个复选框数据的主要内容,如果未能解决你的问题,请参考以下文章

获取多个复选框并插入 Sql 数据库

如何在数据库中具有相同ID的多行中插入多个复选框值

使用一个查询插入多个数组

使用php pdo在sqlite数据库中插入多个复选框的值

如何知道是不是选中了表单中的多个复选框并将值插入数据库表c#

将代码片段插入数据库并在 textarea 中以相同方式显示