【问题标题】:Creating an auto incremented id when user submits a form当用户提交表单时创建一个自动递增的 id
【发布时间】:2021-12-31 05:56:55
【问题描述】:

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

我不想在提交按钮之前显示它,因为 2 个用户可以同时在该页面上,这意味着他们都将获得相同的 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");

【问题讨论】:

  • 只是想知道-您是否考虑过在您的数据库表中使用自动增量键字段? (这将由系统在插入记录时自动分配)
  • @KenLee 我做了,但是数据库中已经有 10000 条这种格式的记录,所以我想继续从原来的位置使用自动增量

标签: php mysql sql codeigniter


【解决方案1】:

我猜你只需要将首字母 LP 添加到返回的自动增量 id 之前。

function insert_listing($maindata){
    // ...

    $this->db->set("refno", "LP". sprintf('%05d', $prime));
    $this->db->where('id', $prime);
    $this->db->update("crm_listings");

    return $prime;
}

【讨论】:

  • 但这并没有在我的数据库的 refno 列中插入任何内容。我目前没有在我的 $maindata 数组中提到“refno”,因为我只想在提交时填写它
  • @H2O ,查看我更新的答案。
  • 这给了未定义方法 CI_DB_mysqli_driver::table() 的调用错误
  • @H2O ,抱歉,我以为您使用的是 Codeigniter 4,既然您使用的是 Codeigniter 3,请尝试我的更新答案。
猜你喜欢
  • 1970-01-01
  • 2014-08-10
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-01
  • 2018-06-13
  • 2019-01-09
相关资源
最近更新 更多