Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter将复选框数组值传递到mysql数据库_Php_Mysql_Codeigniter - Fatal编程技术网

Php Codeigniter将复选框数组值传递到mysql数据库

Php Codeigniter将复选框数组值传递到mysql数据库,php,mysql,codeigniter,Php,Mysql,Codeigniter,提交表单后,只想将复选框数组值传递给mysql数据库表(表列:id、fanta、cola、sprite)。每个值应插入单独的字段中(即不使用内爆/爆炸函数)。最好的解决方案是只传递“1”(如果选中)或“0”(如果未选中)。请帮帮我:) 这是我的型号: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Model_example2 extends CI_Model { func

提交表单后,只想将复选框数组值传递给mysql数据库表(表列:id、fanta、cola、sprite)。每个值应插入单独的字段中(即不使用内爆/爆炸函数)。最好的解决方案是只传递“1”(如果选中)或“0”(如果未选中)。请帮帮我:)

这是我的型号:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Model_example2 extends CI_Model {
  function __construct()
 {
  //Call the Model constructor
   parent::__construct();
 }
public function did_add() {
        $data = array(              
        'fanta' => $this->input->post('fanta'),
        'cola' => $this->input->post('cola'),
        'sprite' => $this->input->post('sprite'),         
                     );
        $query = $this->db->insert('table_example2', $data);
        if ($query) {
            return true;} 
        else {
        return false;}
    }
}
             <div >
             <?php              
             $this->load->helper("form","file","html","url");
             echo $message;
             echo validation_errors();
             echo form_open("example2/add");
             echo form_label("Drink:<br>","type");
             ?>                   
<input type="checkbox" name="types[]" value="fanta" <?php echo set_checkbox('types[]', 'fanta', FALSE); ?>/>Fanta<br />
<input type="checkbox" name="types[]" value="cola" <?php echo set_checkbox('types[]', 'cola', FALSE); ?>/>Coca Cola<br />
<input type="checkbox" name="types[]" value="sprite" <?php echo set_checkbox('types[]', 'sprite', FALSE); ?>/>Sprite<br />
             echo form_submit("Submit", "Add");
             echo form_close();
             </div>
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Example2 extends MX_Controller {
    public function add() {                 
            $this->load->library('form_validation');
            $this->load->model('model_example2');          
            $this->form_validation->set_rules('types[]', 'Drink','required');           
            if($this->form_validation->run()){
            $this->model_example2->did_add(); 
            $data["message"] = "Great job!";
            $this->load->view("view_add_success",$data);
            }
            else {
            $data["message"] = "";  
            $this->load->view("view_example2",$data);
            }           
    }
}

/>可口可乐
你可以这样试试

public function did_add() {

    $types = $this->input->post('types');
    $data = array(
        'fanta' => 0,
        'cola' => 0,
        'sprite' => 0,
    );
    foreach ($types as $type) {
        $data[$type] = 1;
    }

    $query = $this->db->insert('table_example2', $data);
    if ($query) {
        return true;
    }
    else {
        return false;
    }
}

在db中存储类型的列名是什么?你有没有像“芬达”、“可乐”这样的栏目名。。?如果是这样,那么您可以用芬达、可乐等命名复选框。有三个列名:芬达、可乐、雪碧。我将复选框命名为“类型”,以便验证复选框字段(至少应选择一个(>=1)):$this->form_validation->set_rules('types[],'Drink','required');然后,您可以使用字段名称命名复选框,但我将无法验证复选框组,因此至少应选择一个(>=1)非常感谢!您的代码是上述问题的完美解决方案。我真的很感谢你的帮助:)嗨,明哈兹,也许你可以看看我的问题,帮我找到解决办法: