错误异常未定义 属性:mysqli::$kd_max

ErrorException Undefined property: mysqli::$kd_max

我试图根据日期制作唯一代码,

这是我创建唯一代码的模型:

public function get_kode()
{
    $q = $this->db->query("SELECT MAX(RIGHT(kode_list,4)) AS kd_max FROM list_produksi_toko");
    $kd = "";
    if($q->getResult() > 0){
        foreach($q as $k){
            $tmp = ((int)$k->kd_max)+1;
            // $kd = sprintf("%04s", $tmp);
            $kd = sprintf("%'.04d", $tmp);
        }
    }else{
        $kd = "0001";
    }
    date_default_timezone_set('Asia/Jakarta');
    return date('ym').$kd;
}

它不会像标题中那样工作并显示错误,但如果我更改它:

if($q->getResult() > 0){

对此:

if($q->getResult() < 0){

它可以工作,但它一直显示“20090001”相同的代码,即使在我将其输入数据库后也是如此。

我该怎么做才能让它生成唯一代码,比如如果“20090001”已经存在,它将生成“20090002”

试试这个,

public function get_kode()
{
    $q = $this->db->query("SELECT MAX(RIGHT(kode_list,4)) AS kd_max FROM list_produksi_toko");
    $kd = "";
    $result = $q->getResult();
    // try to use $q->getRow(); to get single row and reduce the code of **for loop**
    if(isset($result)){
        foreach($result as $k){//change
            $tmp = ((int)$k->kd_max)+1;
            // $kd = sprintf("%04s", $tmp);
            $kd = sprintf("%'.04d", $tmp);
        }
    }else{
        $kd = "0001";
    }
    date_default_timezone_set('Asia/Jakarta');
    return date('ym').$kd;
}