MySQL Запрос, работающий дважды на странице обновления в ChromePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 MySQL Запрос, работающий дважды на странице обновления в Chrome

Сообщение Anonymous »

Я работаю на форуме и дошел до точки, когда я хочу отслеживать представления страниц.

Код: Выделить всё

    public function get_threads($threadid)
{
$sql = "SELECT t.*, u.username, up.avatar_loc from threads t
INNER JOIN users u
on u.id = t.userid
INNER JOIN user_profiles up
on u.id = up.id
where threadid = $threadid";
$result = $this->db->query($sql)->row_array();
$view = $result['numviews'];
$view ++;
$update = "UPDATE threads SET numviews = $view WHERE threadid = $threadid";
$this->db->query($update);
return $result;
}
< /code>

Однако в Chrome значение Numviews < /code> дважды увеличивается после обновления страницы.  Этого не происходит в Firefox.  < /p>

Обычно содержимое будет загружено с помощью вызова Ajax, и когда он пройдет так, у него тоже нет проблем.  After an AJAX call, I use popstate to change the URL, if the user refreshes while on the page, you get the error, or if they navigate to the page (using open in new window).

Here is the controller code for both the AJAX and the non-ajax:

Non-Ajax thread controller:

public function threads($threadid)
{
//...whole lot of other stuff
$data['content']                 = $this->components_m->thread($threadid);
$this->load->view('template/template' ,$page);
}
< /code>

ajax controller: < /p>

    public function ajax_thread()
{
$threadid = $this->input->post('threadid');
$result['content']              = $this->components_m->thread($threadid);
echo json_encode($result);
}
< /code>

здесь есть components_m-> thread ($ thinkid) < /code> < /p>

    public function thread($threadid)
{
$data['threadid']           = $threadid;
$data['wysihtml5_toolbar']  = $this->load->view('newthread/wysihtml5_toolbar','',TRUE);
$data['op']                 = $this->threads_m->get_threads($threadid);
$data['replies']            = $this->threads_m->replies($threadid);

$page['subject']            = $data['op']['subject'];
$page['replyTo']            = $this->threads_m->replyTo($data);
$page['replies']                 = $this->threads_m->create_replies($data);
return $this->load->view('thread', $page, TRUE);
}
< /code>

Я выполнил поиск по всему своему проекту и get_threads ($ thinkid) < /code> существует только в двух функциях, перечисленных выше. < /p>

Я использую $ this-> output-> ensable_profiler (true);  

Я даже пытался прокомментировать $ result ['content'] = $ this-> components_m-> thread ($ threadid); 
из ajax_thread () и он все еще обновляется дважды в хроме.

?>

Подробнее здесь: https://stackoverflow.com/questions/174 ... -in-chrome
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»