2012-04-11 12 views
3

CodeIgniterのアクティブレコードで1回の訪問あたりのページビュー数を増やそうとしています。何らかの理由で、次のコードが2回インクリメントされています。したがって、1回の訪問につき2ページビューが追加されます。奇妙なのは、同じテーブルと同じメソッドコードを共有する別のWebサイトで使用され、他のWebサイトでも正しく動作するということです。ビューフィールドは単純なint(11)です。私はこのメソッドをコントローラーで一度しか呼び出していないので、重複があったかもしれないと思ったが、そうはしなかった。CodeIgniterはページビューを1回ではなく2回インクリメント/カウントします。

function increment_video_view($video_pk) { 
    $this->db->where('video_pk', $video_pk); 
    $this->db->set('views', 'views+1', FALSE); 
    $this->db->update('videos'); 
} 

いずれかのアイデアや助けが素晴らしいでしょう!ありがとう!

+0

私のコードは問題ありませんでした。ライブサーバーに古いモデルがありました。モデルの最新バージョンが正しく表示されていますが、これは上記のコードです。以下の助けをありがとう! – Chris

+0

プロファイラを有効にして、何が実行されているかを確認してください。 – kba

+0

私はすぐに話しましたが、これは非常に奇妙です。私は、FireFoxでページビューが正しく更新されていることに気付きましたが、Chromeで2回更新されます。それはどういう意味ですか?私はここで奇妙な何かをしている必要があります... – Chris

答えて

0

コントローラは1回だけ実行されていますか?

+0

私はプロジェクト全体の検索を行い、increment_video_view()メソッドは一度だけ呼び出されます。コントローラのメソッド自体が2回呼び出されるかどうかを尋ねる場合は、検索した後、1回だけ呼び出されます。ビデオページとインクリメントメソッドを呼び出すコントローラメソッドはvideos()と呼ばれ、一度だけ呼び出されます。ありがとうございます... – Chris

1

echo(またはlog)文を関数内に入れて、実際に2回呼び出されたかどうかを確認してください。一度しかエコーしていない場合はお知らせください。

function increment_video_view($video_pk) { 
    echo "We in increment_video_view"; 
    $this->db->where('video_pk', $video_pk); 
    $this->db->set('views', 'views+1', FALSE); 
    $this->db->update('videos'); 
} 
+0

それは一度しか見えませんでしたが、私は問題を見つけたと思います。私は数週間前からコードに古いバグがあったに違いないと思います。私は自分のプロジェクトにあった新しいモデルファイルを更新しませんでした。ビューは一度に1つ増えています。愚かな間違い、私はモデルが最新だと思った。ありがとうございました! – Chris

+0

間接的に私の問題を解決してエコーは私が以前に試してみたはずのスマートでシンプルなアイデアだったので、私は正しい答えとしてあなたをマークします。ありがとうございました! – Chris

+0

ああ、心配しないで、あまりにも早く話しました。上記をお読みください。 – Chris

0

あなたがHTMLに404のリンク(画像/ CSS /ファビコン)を持っている場合に発生します。または、クロームもあなたドン場合favicon.icoを探し行方不明のfavicon.ico

を持っている場合それをあなたのHTMLに挿入しないでください。それが見つからないときは、別の要求を呼び出すと思います。

関連する問題