php - 从数据库 PhpMyAdmin 和 CodeIgniter 生成唯一 ID

标签 php mysql codeigniter

我在生成此唯一 ID 时遇到一些问题。 表格如下所示: Table

以下是创建 ID 的规则:

  1. ID 将如下所示:AAyyyymm00x
    • AA 是目标代码。
    • yyyy 是当前年份。
    • mm 是当前月份。
    • 00x 是注册号。每天将重置为 1。并且每次注册增加 1。
  2. 所以最终的外观将是:AA201604001

我的 Controller 代码:

public function tambah()
    {
        $this->data['namaNegara'] =  $this->registrasi_model->get_nama_negara();
        $this->data['main_view'] = 'program/administrasi/registrasi_form';
        $this->data['form_action'] = site_url('program/administrasi/registrasi/tambah');

        // Data untuk form.
        if (! $_POST) {
            $registrasi = (object) $this->registrasi_model->default_value;
        } else {
            $registrasi = $this->input->post(null, true);
        }   

        // Validasi.
        if (! $this->registrasi_model->validate('form_rules')) {
            $this->data['values'] = (object) $registrasi;
            $this->load->view($this->layout, $this->data);
            return;
        }
        $destName = $registrasi['Nama_Negara'];
        echo $registrasi['No_Registrasi'] = $this->registrasi_model->generate_no_reg($destName);
    }

我的模型代码:

public function generate_no_reg($destName)
    {
        $query = $this->db->query('SELECT Dest_Code from Destination WHERE Dest_Name= "$destName"');
        $id1 = $query->row()->Dest_Code;

        $query2 = 'SELECT Reg_ID FROM Registration ORDER BY Reg_ID DESC LIMIT 1';
        $lastid = $this->db->query($query2);
        $id2 = $lastid->row()->Reg_ID+1;

        $id3 = format_no_registrasi($id2);
        $kode = $id1.$id3;
        return $kode;

    }

我的format_no_registrasi函数代码:

function format_no_registrasi($no)
{ 
    $leadingzeros = '000';
    $no_reg = date('Y') . date('m') . substr($leadingzeros, 0, (-strlen($no))) . $no;
    return $no_reg;
}

这是我的错误:error
底部显示的文本是我想要的 ID,但它没有 Dest_Code。
很感谢任何形式的帮助。很抱歉给您带来麻烦。

最佳答案

public function generate_no_reg($destName)
{
    $this->db->select('Dest_Code');
    $this->db->from('Destination');
    $this->db->where('Dest_Name',$destName);
    $query=$this->db->get();
    return $query->row();
}

我认为这会起作用。现在尝试在 Controller 中打印结果。

关于php - 从数据库 PhpMyAdmin 和 CodeIgniter 生成唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36591056/

相关文章:

mysql - 将 MySQL 输出从 SELECT 查询转换为 UPDATE 查询

php - 如何解决 MySQL 中的连接数过多错误?

php - Codeigniter 数据库删除时出现错误

php - 如何为每组数据生成增量数?

来自非连续行的按列的 PHP 表

PHP try catch : get variable defined in try

php - 表单未发送完整数据

php - 使用 AJAX 将参数发送到 php Controller 的最佳方法

javascript - 逻辑选择类别和子类别(php、joomla、javascript、ajax)

php - 选择 MySQL 行值作为列标题?