-1

我正在尝试用不同的位置更新名为 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 时它只更新第一行但下一行没有改变......我不明白为什么会这样......请帮助......

4

2 回答 2

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'); 

查看$this->db->update_batch();CI用户指南中的方法。

于 2013-08-19T12:56:24.967 回答
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);
}
于 2013-08-19T12:56:19.430 回答