我无法通过Codeigniter(PHP)中的数组更新数据,
我想将列premium_id
减少到0时将列premium_count
或溢价设置为0
控制器功能:-
$premium_count = !empty($logged_user[0]->premium_count) ? $logged_user[0]->premium_count : '0';
if($premium_count == '0') {
$data = array(
'premium_count' => '0',
'premium_id' => '0',
'premium' => '0'
);
} else {
$data = array(
'premium_count' => $premium_count-1
);
}
$this->admin_model->updateData('users', $data, $this->session->userdata('userid'));
模型功能(sql查询):-
public function updateData($table,$data,$id)
{
$this->db->where('id',$id);
$this->db->update($table,$data);
}
当premium_count
的值类似于1,2,3 ..时有效,但是当其减小到0时,则不会更新或将上面的列设置为0。
答案 0 :(得分:0)
请尝试删除引号中的0。 我的意思是
if($premium_count == '0') {
$data = array(
'premium_count' => '0',
'premium_id' => '0',
'premium' => '0'
);
到
if($premium_count == 0) {
$data = array(
'premium_count' => 0,
'premium_id' => 0,
'premium' => 0
);
希望有帮助。
答案 1 :(得分:0)
将这部分替换为零而不是字符串
$premium_count = !empty($logged_user[0]->premium_count) ? $logged_user[0]->premium_count : 0; // <- remove '' over zero
并像这样检查
if($premium_count == 0) { // <- remove '' over zero
$data = array(
'premium_count' => '0',
'premium_id' => '0',
'premium' => '0'
);
} else {
$data = array(
'premium_count' => $premium_count-1
);
}