【问题标题】:Codeigniter insert and serialize multiple selected values into databaseCodeigniter 将多个选定的值插入并序列化到数据库中
【发布时间】:2013-11-09 08:34:45
【问题描述】:

我使用 Codeigniter 并有一个带有多个选择框的表单,它允许用户获取多个选项,我偶然发现如何将多个选定值插入数据库,保存多个值的参数是 $category,目前是表格只插入了我选择的最后一个值。

这是我的代码:

型号:

function save_listing($user_id, $cname, $reg_code, $desc, $category)
{

    $data = array(
        'user_id' => $user_id,
        'company_name' => ucwords(strtolower($cname)),
        'register_code' => $reg_code,
        'descriptions' => $desc,
        'category_id' => $category
    );

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

    return TRUE;

}

控制器:

public function create()
{
    if(!$this->tank_auth->is_logged_in()) {
        redirect('/auth/login');

    }else{

        $user_id = $this->session->userdata('user_id');
        $profile = $this->users->get_profile_by_id($user_id);

        $this->form_validation->set_rules('cname', 'Company Name', 'trim|required|xss_clean|min_length[5]|max_length[50]|is_unique[listing.company_name]');
        $this->form_validation->set_rules('reg_code', 'Company No.', 'trim|xss_clean|min_length[5]|max_length[10]');
        $this->form_validation->set_rules('desc', 'Descriptions', 'trim|xss_clean|min_length[25]|max_length[500]');
        $this->form_validation->set_rules('category', 'Category', 'required');


        if($this->form_validation->run()) { // validation ok

            if(!is_null($data = $this->db_model->save_listing(
                $user_id,
                $this->form_validation->set_value('cname'),
                $this->form_validation->set_value('reg_code'),
                $this->form_validation->set_value('desc'),
                $this->form_validation->set_value('category')
            ))) { // success

                $this->session->set_flashdata('msg', 'Saved!');
                redirect(current_url());
            }

        }else{

            $errors = $this->tank_auth->get_error_message();
            foreach($errors as $k => $v) $data['errors'][$k] = $this->lang->line($v);
        }

        $data['catOpts'] = $this->db_model->getCategories();
        $data['s_cate'] = $this->input->post('category');

        $this->load->view('header', $data);
        $this->load->view('create_new', $data);
        $this->load->view('footer', $data);

    }

}

print_r('s_cate') 这是$this->input->post('category') 在视图中选择的值,它显示:

Array ( [0] => 1 [1] => 5 [2] => 7 )

谁能提供一个关于如何序列化多个值并插入到表中的解决方案?

谢谢。

【问题讨论】:

    标签: codeigniter serialization insert


    【解决方案1】:

    尝试这样的事情,将您的值保存为数据库中的 CSV

        $var = $this->input->post('category');//array(1,5,4);
        $data['s_cate'] =  implode(",", $var);
    

    【讨论】:

    • 我应该在哪里做这个?在模型或控制器中?
    猜你喜欢
    • 2013-11-21
    • 1970-01-01
    • 2015-07-02
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    相关资源
    最近更新 更多