データベースでインクリメントすることにより、特定のページのビューを更新しようとしています。コードは次のとおりです。
function increment_views($id)
{
$this->db->where('UID',$id);
$this->db->set('`Views`', 'Views+1', FALSE);
if($this->db->update('articles'))
return true;
else
return false;
}
コントローラーで何かをエコーすると、(意図したとおり) 1 回更新されます。ビューをロードしてコントローラーに何もエコーしないと、ビューが 4 回、場合によっては 5 回更新されます。
編集:問題が見つかりました。URL の末尾にスラッシュがある場合、インクリメントは異常です。それ以外の場合は、必要に応じて 1 だけインクリメントされます。問題は、disqus プラグインが機能するために末尾のスラッシュが必要なことです。ここに私の .htaccess ファイルがあります:
#turn mod_rewrite engine on.
RewriteEngine On
#set the base for urls here to /
RewriteBase /codzer
#adds a trailing slash
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
### if the is not a request for an existing file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# rewrite to index.php passing the URI as a path, QSA will preserve the existing query string
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
どこが間違っているのでしょうか?
ありがとう