在php codeigniter中自动生成代码

时间:2016-07-09 01:16:54

标签: php codeigniter mysqli

我正在尝试为我的数据库创建SKU代码。我需要做的是增加列名division_code中的最后一个值代码。我列中的最后一个示例代码就是这样的' DIV343'。当我添加新数据时,我需要将最后一个值增加到DIV344,但我在我的专栏中得到的是' 1'。

任何帮助都会表示赞赏。

public function save($data)
{
    $data = array(
        'division_name'     => $data['division_name'],
        //'division_code'       => $data['division_code'],
        'division_acro'     => $data['division_acro']
        );
    $this->db->set('division_code', '`division_code`+ 1', FALSE);
    $this->db->insert($this->table, $data);
    return $this->db->insert_id();

}

1 个答案:

答案 0 :(得分:0)

首先,您必须从字符串中提取整数,然后将1添加到该字符串。

$number = filter_var($data['division_code'], FILTER_SANITIZE_NUMBER_INT); 

它会从343给您DIV343

现在将1添加到此号码。

$number = $number + 1;

如果所有DIV都有division_code前缀,则可以直接使用DIV,否则您必须从原始$data['division_code']中提取字符串。

现在你可以使用它:

$this->db->set('division_code', 'DIV'.$number, FALSE);

然后,要提取字符串,

$string = preg_replace('!\d+!', '', $data['division_code']);

现在添加字符串和数字

$final_division_code = $string . $number;
$this->db->set('division_code', $final_division_code, FALSE);
相关问题