Codeigniter запрос активной записи - PullRequest
0 голосов
/ 09 августа 2011
function updateViews($id){
  $this->db->where('id',$id);
  $this->db->set('views','`views`+1', FALSE);
  $result = $this->db->update('company');
  return $result;
}

Эта функция обновляет столбец 'views' на 6 вместо 1 (как написано).

Кто-нибудь может объяснить, почему это так?

1 Ответ

0 голосов
/ 11 августа 2011

Ваш код показывает:

$this->db->set('views','`views`+1', FALSE);

Я думаю, что вокруг второго параметра views слишком много кавычек.

Попробуйте:

$this->db->set('views', 'views+1', FALSE);

Или:

Если вы используете идентификатор в качестве параметра для вашей модели для обновления представления на 1, вы можете сделать это одним из способов - создать частную функцию для поиска значения «view», а затем использовать открытую функцию для обновления значение.

// Pass the $id in as a parameter
private function _getViewsValue($id) {
    // Select the views field
    $this->db->select('views');
    // Where the passed in parameter id is equal to the row id
    $this->db->where('id', $id);
    // Return the value
    return $this->db->get('company')->row()->views;
}

// Function to increment the views by 1. Pass in $id as parameter
public function incrementViews($id) {
    // Call the private function _getViewsValue to return the views value and store in variable $views and increment by 1
    $views = $this->_getViewsValue($id) + 1; 
    // Update the row
    $this->db->update('company', array('views' => $views), array('id' => $id))
    }

Иногда, когда мне нужно отладить, я использую echo $ varible; умереть ();

Надеюсь, это помогло:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...