我有一个包含三个字段的表
id (primary key / auto incremented)
product_name
group_id
我的问题是,当我通过表单插入多行时,整个行组应该得到相同的groupId&它应该在提交时增加1,因为可能有许多用户同时提交表单。我不知道该怎么做。请帮忙。
我的模特
function get_last_group_id() {
$this->db->select('group_id');
$this->db->from('mytable');
$this->db->order_by('group_id', 'DESC');
$this->db->limit('1');
$query = $this->db->get();
return $query->result();
}
function save_rows($ids,$product_names,$group_ids){
$this->db->trans_begin();
$ndx=0;
foreach($ids as $id){
$data = array(
'id' => $id,
'product_name' => $product_names[$ndx],
'group_id' =>$group_ids[$ndx],
$this->db->insert("product_details",$data);
$this->db->update($this->table);
$ndx++;
}
答案 0 :(得分:0)
如果是自动增量
,则无需为获取组ID而设置单独的功能并设置id字段function save_rows($ids,$product_names){
$this->db->trans_begin();
$ndx=0;
$group_id = $this->db->select("MAX(group_id) as group_id")
->from("mytable")
->get()->row_array();
foreach($ids as $id){
$data = array(
'product_name' => $product_names[$ndx],
'group_id' =>$group_id['group_id']+1,
);
$this->db->insert("product_details",$data);
$ndx++;
}
答案 1 :(得分:0)
你可以创建一个新的表格'groups' fields:id(自动增量)和group_name(varchar) 随机生成组名。
然后在插入产品之前创建一个新组,然后您将获得一个独特的新groupID。
然后使用该groupID,您可以将您的选项转发