2016-05-31 87 views
2

我在更新行时遇到问题我通过ajax执行此操作,查询影响所有行而不是单个标识我给出了
这是我的Model Class函数:
Codeigniter查询更新所有行而不是1

public function edit_season($data) 
{ 
    // echo $a = json_encode($data); 
    // echo $a->id; 
    // die(); 

    $this->db->get_where('seasons', array('season_id ' => 11)); 
    $query = $this->db->update('seasons',array('names ' => $data['name'])); 

    if ($query) 
    { 
     return $query; 
    } 
    else 
    { 
     return FALSE; 
    } 

} 

我还检查我从阿贾克斯得到我的数据是正确的,但我想有一些问题,询问的事情,我甚至硬编码的id值还是它的更新所有的名字,而不是一个。

+1

什么是$数据格式?它是一个JSON数组? –

回答

4
$this->db->where('season_id', 11)); 
$query = $this->db->update('seasons', array('names ' => $data['name'])); 

这是正确的方式把where条件,同时更新查询。

get_wherewhere之间的差异。

get_where将会从表中的数据行,而where将添加一个条件

+0

这是正确的答案。你也可以在更新查询中直接包含where语句:'$ query = $ rows-> update('seasons',array('names'=> $ data ['name']),array('season_id'=> 11));' – jtheman

+1

@jtheman,正好。试图给新手 – Sanchit

+0

提供一个简单的解决方案,对不起,'$ rows'定义在哪里? – Webinan

1

你不应该叫get_where,使用其中代替:

$this->db->where('season_id', 11); 
$query = $this->db->update('seasons',array('names ' => $data['name'])); 

你也可以做一个行:

$query = $this->db->update('seasons',array('names ' => $data['name']), "season_id = 11"); 
+0

'哪里'不需要表名作为参数。它有两个参数,第一个作为列名,第二个作为列值。或者包含键值对的数组,其中键是列名,值是列值 – Sanchit

0

试试这个

$this->db->where('seasons', array('season_id ' => 11)); 
$query = $this->db->update('seasons',array('names ' => $data['name'])); 
相关问题