Я хочу создать боковую панель, которая отображает 5 лучших статей, упорядоченных по кликам. Я использую Codeigniter. Я закодировал простой запрос. По мнению, у меня есть простая ссылка:Как предотвратить обновление поля mysql +1 при обновлении страницы
<a href="<?php echo base_url() ?>/article/<?php echo $row['article'];?>"><h2><?php echo $row['particle'];?></h2></a>
Моя модель:
public function count_views($id)
{
$sql = "UPDATE article SET views = views +1 WHERE id = '{$id}'";
$this->db->query($sql);
}
Моего контроллер:
public function article($article_id) {
$link = $this->quotes_model->get_article($article_id);
$this->quotes_model->count_views($article_id);
$views = $this->quotes_model->popular_articles();
$this->template->set('views', $views);
$this->template->render();
}
Когда я нажимаю название статьи ссылку (в MySQL просмотров поля обновлений + 1) он открывает полную статью. Все в порядке, но если я нажму на обновление, просмотры полей обновляются еще на +1.
Если кто-то обновляет открытую статью, mysql не должен обновлять поле просмотра еще раз +1? P.S извините за мой английский язык.
Возможно, есть простой способ использовать javascript или ajax, чтобы как-то остановить поле обновления, когда пользователь пытается обновить страницу? – anhelo
Вы не можете контролировать пользователя от обновления страницы. Он должен обрабатываться на уровне кода, если вы хотите только захватить уникальные посещения пользователя. –