删除时我调用了这个函数:
function delete_categories($id){
$max_rank = $this->categories_model->get_max_rank(); //for getting max rank
$rank = $this->categories_model->get_rank_by_id($id); //for getting the current rank
$cat_id=array();
for($i=$rank;$i<=$max_rank;$i++){
$cat_id[] = $this->categories_model->get_id_by_rank($i); //contains the categories id that should be updated
}
foreach($cat_id as $id){//categories to be updated
$rank = $this->categories_model->get_rank_by_id($id);
$data['fld_rank']= $rank-1;
$this->categories_model->update_rank($id,$data);
}
//$this->categories_model->delete_category($id);
}
所有代码都正常工作,当它到达 update_rank($id, $data) 时,值不会按应有的方式更新。我的 update_rank() 函数是:
function update_rank($id,$data){
$this->db->where('fld_id',$id);
$this->db->update('tbl_categories',$data);
}
变量 $id 和 $data 在上述函数中具有正确的值,但是在检查数据库时,值未正确更新。其中一些已更新,而其中一些未更新。
我的 tbl_categories 是这样的:
fld_id fld_name fld_description fld_rank fld_status
1 Cat1 Cat1 4 0
2 Cat2 this is cat2 1 0
4 Cat4 this is cat4 2 0
5 Cat3 this is cat 3 3 0
我检查了 fire bug 中的值,所有值都是正确的,但是更新完成后 fld_rank 没有正确更新,请帮助...