2012-04-11 9 views
3

Ich versuche lediglich, die Anzahl der Seitenaufrufe pro Besuch mit CodeIgniters aktivem Datensatz zu erhöhen. Aus irgendeinem Grund wird der folgende Code zweimal hochgezählt. So werden pro Besuch 2 Seitenaufrufe hinzugefügt. Was merkwürdig ist, ist, dass dies auf einer anderen Website verwendet wird, die die gleiche Tabelle und den gleichen Methodencode verwendet und auf der anderen Website ordnungsgemäß funktioniert. Das Ansichtsfeld ist ein einfacher Int (11). Ich rufe diese Methode nur einmal im Controller an, ich dachte, ich hätte vielleicht ein Duplikat, aber das tue ich nicht. CodeIgniter inkrementiert/zählt Seitenaufrufe zweimal, nicht einmal

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

Irgendwelche Ideen oder Hilfe wäre toll! Vielen Dank!

+0

Mein Code war in Ordnung, ich hatte ein veraltetes Model auf dem Live-Server. Die neueste Version des Modells lokal war richtig, das ist der Code, den Sie oben sehen. Danke für die Hilfe unten! – Chris

+0

Versuchen Sie den Profiler zu aktivieren und sehen Sie, was gerade ausgeführt wird. – kba

+0

Ich sprach zu bald, das ist sehr seltsam. Ich habe gerade festgestellt, dass die Seitenansichten in FireFox korrekt aktualisiert werden, aber sie werden in Chrome zweimal aktualisiert. Wie macht das überhaupt Sinn? Ich muss hier etwas komisch machen ... – Chris

Antwort

0

Sind Sie sicher, dass der Controller nur einmal ausgeführt wird?

+0

Ich habe eine projektweite Suche durchgeführt und die Methode increment_video_view() wird nur einmal aufgerufen. Wenn Sie fragen, ob die Controller-Methode selbst zweimal aufgerufen wird, habe ich gesucht und sie wird auch nur einmal aufgerufen. Die Controllermethode, die die Videoseite und die Inkrementmethode aufruft, heißt videos() und wird nur einmal aufgerufen. Danke ... – Chris

1

Versuchen Sie, eine echo- (oder Log-) Anweisung in die Funktion einzufügen, um zu sehen, ob sie tatsächlich zweimal aufgerufen wird. Lass es uns wissen, wenn es nur einmal Echo ist.

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

Es zeigte nur einmal, aber ich denke, dass ich das Problem gefunden habe. Ich muss einen alten Bug in dem Code von Wochen gehabt haben und die neue Modelldatei, die ich in meinem Projekt hatte, nie aktualisiert haben. Die Ansichten werden jetzt einzeln nacheinander inkrementiert. Dummer Fehler, ich dachte, das Modell wäre auf dem neuesten Stand. Vielen Dank! – Chris

+0

Ich werde Sie als die richtige Antwort markieren, da es mein Problem indirekt gelöst hat und das Echo eine schlaue und einfache Idee war, die ich vorher hätte ausprobieren sollen. Vielen Dank! – Chris

+0

Oh wow, vergiss es, ich habe zu früh gesprochen. Bitte lesen Sie oben. – Chris

0

Dies geschieht, wenn Sie eine 404-Verbindung (image/css/Favicon) in Ihrem HTML haben, oder wenn Sie eine fehlende favicon.ico

Chrome sucht nach einem favicon.ico, auch wenn Sie don haben füge es nicht in deinen HTML-Code ein, und wenn es fehlt, denke ich, dass es eine andere Anfrage aufruft.