Codeigniter查询更新所有行而不是1

时间:2016-05-31 08:48:46

标签: php mysql ajax codeigniter

我在通过ajax更新行时遇到问题,查询影响所有行而不是我给出的单个id 这是我的模型类功能:

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;
    }

}

我还检查了我从ajax得到的数据是对的,但我猜查询事情有一些问题我甚至硬编码了id值仍然是更新所有名称而不是一个。

3 个答案:

答案 0 :(得分:4)

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

这是在更新查询时放置where条件的正确方法。

get_wherewhere之间存在差异。

get_where将从表中检索数据行,而where将添加条件

答案 1 :(得分:1)

你不应该调用get_where,而是使用where:

timeoutTimer.Change(Timeout.Infinite, Timeout.Infinite); // Reset timeout.

您也可以在一行中完成:

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

答案 2 :(得分:0)

试试这个

  private int cX=0;
  private int cY=0;


  //Randomly set coordinates on the array. 
 for(int i=0; i<1; i++){
  int x = randGen.nextInt(9);
  int y = randGen.nextInt(9);
  if (board [x][y].display()=='.'){
   CX=x;
   CY=y;
  }
 }  


 //Print array
private void displayArray(){
 for (int i = 0; i < board.length; i++){ 
  for (int j = 0; j < board[i].length; j++){
   if ((i==CX)&&(j==CY))
    System.out.print("C"+"\t");
   else
    System.out.print(board [i][j].display()+"\t");
  }
 System.out.println("\n");
 }
}