1

データベースでインクリメントすることにより、特定のページのビューを更新しようとしています。コードは次のとおりです。

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]

どこが間違っているのでしょうか?

ありがとう

4

0 に答える 0