我正在尝试更新名为tbl_sub_categories的表中同一列的两行,其中包含不同的位置,我这样做了:
$temp = 4;
$sub_cid = 100;
$rank = 6;
$next_id = 112;
$this->change_rank($temp, $sub_cid);
$this->change_rank($rank, $next_id);
function change_rank($rank,$sub_cid){
// echo $rank.'--'.$sub_cid.'-------';
$query = "UPDATE tbl_sub_categories SET fld_rank = '".$rank."' WHERE fld_id ='".$sub_cid."'";
$this->db->query($query);
}
在更新tbl时它只更新第一行但下一行没有变化......我不明白为什么会这样......请帮忙......
答案 0 :(得分:1)
如果你正在使用CodeIgniter,它的Active Record类中有一个功能可以更新多行:
$data = array(
array(
'fld_rank' => '4',
'fld_id' => '100'
),
array(
'fld_rank' => '6',
'fld_id' => '112'
)
);
$this->db->update_batch('tbl_sub_categories', $data, 'fld_id');
查看CI user guide中的$this->db->update_batch();
方法。
答案 1 :(得分:0)
这可能有效 - >更改您的功能如下:
function change_rank($rank1,$sub_cid1){
// echo $rank.'--'.$sub_cid.'-------';
$query = "UPDATE tbl_sub_categories SET fld_rank = '".$rank1."' WHERE fld_id ='".$sub_cid1."'";
$this->db->query($query);
}