【问题标题】:Auto generate code in php codeigniter在 php codeigniter 中自动生成代码
【发布时间】:2016-07-09 01:16:53
【问题描述】:

我正在尝试为我的数据库创建 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();

}

【问题讨论】:

  • @BennyHill 输出也是“1”
  • @BennyHill 它说。未定义的索引:division_code
  • 你必须从字符串中提取整数,然后在该整数上加 1

标签: php codeigniter mysqli


【解决方案1】:

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

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

它会从DIV343 给你343

现在将1 添加到此号码。

$number = $number + 1;

如果所有division_code 都有DIV 前缀,那么您可以直接使用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);

【讨论】:

  • 我有点糊涂,我的能把你的代码提取到我的吗?
  • 只需从字符串中提取整数.. 这就是如何将1 添加到具有整数的字符串中的方法
  • 只是一些错误。我按照你说的做了,但是 +1 不起作用。它仍然是 div343
  • 只需提取numberstring,然后将1添加到number,最后连接stringnumber
  • 我只需要探索就可以了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2010-10-04
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多