在用户提交表单时创建自动递增的id



目前我有一个refno。列,格式为LP00001。现在我有一个添加页面,它插入用户在输入字段中插入的所有数据,所有这些数据都被发送到我的数据库中的一个表,但我的refno列保持为空,我希望有一个自动递增的值,每次用户提交表单时,最后5位数字将为+1。

我不想让它在提交按钮之前显示,因为两个用户可以同时在该页面上,这意味着他们都将获得相同的id,这意味着您必须仅在提交时生成id。目前这是我的代码:

控制器类别:

if ($this->form_validation->run() == FALSE)
{
$main['page'] = 'crm/listings/add';
$this->load->view('crm/index', $main);
}else {  
$maindata=array('clients_id'=>$this->session->userdata('clientsessid'),
'property_for'=>$this->security->xss_clean($this->input->post('property_for')),
'property_type'=>$this->security->xss_clean($this->input->post('property_type')));
$insertid=$this->listings_model->insert_listing($maindata);
if($insertid){
$this->session->set_flashdata('message', '<div>Successfully</div>');
redirect('listings/sales');

型号类别:

function insert_listing($maindata){
$this->db->insert("crm_listings",$maindata);
$prime=$this->db->insert_id();
return $prime;
}

所以我想我需要在我的模型类函数insert_listing中这样做,因为当我按下提交按钮时,它会被调用。这里的另一件事是,模型必须检查数据库中最后一个必须递增的条目是什么,我假设我必须使用echo str_replace("LP","","LP00001");

我想您只需要在返回的autoIncremededid前面加上缩写LP

function insert_listing($maindata){
// ...
$this->db->set("refno", "LP". sprintf('%05d', $prime));
$this->db->where('id', $prime);
$this->db->update("crm_listings");
return $prime;
}

最新更新