我希望将文本框的值显示为记录的最后一个ID,然后将其递增。
这就是我所拥有的:
view.php
<?php
$id = $this->db->insert_id();
$newId = $id + 1;
$data = array(
'name' => 'customercode',
'id' => 'inputCustomerCode',
'type' => 'text',
'readonly' => 'true',
'class' => 'form-control',
'value' => 'CUST0000' . $newId
);
echo form_input($data);
?>
但它只是显示 CUST00001 ?我在这里做错了什么?非常感谢和需要帮助。感谢。
答案 0 :(得分:2)
您可以使用以下代码,而不是使用$id = $this->db->insert_id();
:
$query = $this->db->query("SELECT id FROM mytable ORDER BY id DESC LIMIT 1");
$id = $query->row()->id;
$newId = $id + 1;
$data = array(
'name' => 'customercode',
'id' => 'inputCustomerCode',
'type' => 'text',
'readonly' => 'true',
'class' => 'form-control',
'value' => 'CUST' . str_pad($id+1, 5, '0', STR_PAD_LEFT)
);
echo form_input($data);
答案 1 :(得分:1)
如果您想在多个地方使用此ID,则可以使用$this->db->insert_id();
获取最后插入的ID,请将其放在变量中并使用该变量。
您可以在插入查询后使用$this->db->insert_id()
。
$id = $this->db->insert_id();
您可以使用简单查询来获取最大ID
$query = $this->db->query("SELECT MAX (id) FROM table");
$id = $query->row()->id;
并在表单中使用$ id
'value' => 'CUST0000' . $id + 1
答案 2 :(得分:0)
而不是
$this->db->insert_id()+1
您需要显示$newId
。
确保您已查询最后一个ID。只有在插入一些记录后才会返回$this->db->insert_id()
。如果还没有,那么您需要查询以获取最后插入的ID。您可以使用这个简单的查询。
SELECT id FROM mytable ORDER BY id DESC LIMIT 1
答案 3 :(得分:0)
$ this-&gt; db-&gt; insert_id()
The insert ID number when performing database inserts.
查看http://ellislab.com/codeigniter/user_guide/database/helpers.html,第一个函数是$this->db->insert_id();
这也适用于活动记录插页......