Seite 1 von 2

Zähler bei den PN stimmt nicht

Verfasst: 11.11.2014 01:26
von zx9r-treiber
Hallo erst mal.

Ich habe das phpBB 3.0.12
Styles = beide Standard
Mod = einige aber eher unwichtig da kaum relevant bei PN
Link zum Forum = www.zx9r-forum.de
Test User und Passwort kann per PN gegeben werden.

Alles läuft tadellos und ohne Probleme bis auf das die Zählerangabe bei den PN nicht richtig angezeigt wird.

Wenn ein Postfach im Eingang absolut leer ist zeigt er dennoch an das zB. 2 von 40 PN im Eingang liegen.
Das selbe im PN Ausgang. Der Ordner ist leer aber es werden zB. 5 von 40 PN gezählt obwohl der Ordner leer ist.


Bisherige Maßnahmen (versuche) = Datenbank überprüft/gereinigt/repariert/optimiert
Habe die zulässige Anzahl der PN je Ordner verändert.
Kein Erfolg.

Wo muss ich ansetzen um heraus zubekommen woran es liegt das der Zähler nicht auf "0" geht wenn der Ordner geleert ist ?

Re: Zähler bei den PN stimmt nicht

Verfasst: 11.11.2014 15:24
von HabNurNeFrage
Hi,

alle als neu geltenden PN berinigen:
UPDATE `phpbb_privmsgs_to` SET pm_new = 0;

Alle als ungelesen geltenden PN bereinigen:
UPDATE `phpbb_privmsgs_to` SET pm_unread = 0;

Setzt aber auch wirklich ungelesene, neue und gelöschte auf Null und nicht nur die fehlerhaft aufgeführten.
Wenn das nur bei einigen Usern so ist und Du die User-IDs kennst, kannst Du die wie folgt ändern:

Code: Alles auswählen

UPDATE `phpbb_privmsgs_to` SET pm_unread = 0 WHERE user_id = 2;
UPDATE `phpbb_privmsgs_to` SET pm_new = 0 WHERE user_id = 2;
2 ist in dem Fall die User-ID des Users, bei dem ungelesene oder neue PN angezeigt werden, obwohl keine da sind.
Das muss in dem Fall dann für jede User-ID entsprechend wiederholt werden, während die ersten SQL-Queries gleich die gesamte Tabelle ändert.

LG

Re: Zähler bei den PN stimmt nicht

Verfasst: 11.11.2014 16:26
von zx9r-treiber
Habe ich getestet für bestimmten User mit der ID ...... kein Erfolg ... es werden vor wie nach nicht vorhandene PN angezählt.

Versende ich eine Test PN so wird der Zähler richtig erhöht und nach dem Löschen der PN auch wieder abgezogen. Es bleiben aber welche angezählt die nicht da sind. Auch die ausgerechnete % Zahl ist richtig für den falschen Zählerstand.
Also bei 2/40 5%

Re: Zähler bei den PN stimmt nicht

Verfasst: 14.11.2014 15:35
von zx9r-treiber
Hat vielleicht sonst jemand noch einen Vorschlag wo ich suchen könnte oder wie ich diesen Zählerfehler beseitigen kann ?

Re: Zähler bei den PN stimmt nicht

Verfasst: 14.11.2014 16:15
von Lehrling
Hallo,
wir hatten mal ein ähnliches Problem. Hier: viewtopic.php?f=74&t=222061
Vielleicht hilft dir diese Diskussion weiter.
LG Beate

Re: Zähler bei den PN stimmt nicht

Verfasst: 14.11.2014 17:26
von zx9r-treiber
Das habe ich auch schon probiert .... kein Erfolg damit. Es bleiben Phantom "PN" im Zähler .... Bei mir sind auch ein paar User davon betroffen.

Re: Zähler bei den PN stimmt nicht

Verfasst: 24.11.2014 00:00
von zx9r-treiber
Hat keiner einen Lösungsansatz ????


Ich habe inzwischen auch die Datenbank so weit ich das erkennen konnte untersucht und finde keine falschen Angaben die das produzieren könnten.
Also wo verrechnet sich das phpBB ?????

Re: Zähler bei den PN stimmt nicht

Verfasst: 25.11.2014 21:40
von Elsensee
Wird das denn nur "da oben" angezeigt? (Also etwa "Ordner ist zu xx% voll (xx von xx Nachrichten gespeichert)"?)
Oder wird das auch auf der linken Seite bei den Ordnern angezeigt? Also dort, wo man diese auswählen kann.

Re: Zähler bei den PN stimmt nicht

Verfasst: 25.11.2014 22:41
von zx9r-treiber
Ja, wenn ich in die PN gehe wird das oben über dem eigentlichen Ordner falsch angezeigt. Dabei sind verschiedene Ordner betroffen wie "Eingang" und " Gesendet" , aber nicht alle. Auch extra angelegte Ordner betrifft es in einem Fall.

sonst nirgends ....

Re: Zähler bei den PN stimmt nicht

Verfasst: 26.11.2014 00:09
von gn#36
Es sind zu den meisten Zählern Einträge in der user Tabelle vorhanden, z.B. wird dort die Anzahl der Beiträge gezählt, auf jeden Fall auch die Zahl der neuen und ungelesenen PNs. Bei den Gesamtzahlen ist es aber etwas anders, die liegen in der phpbb_privmsgs_folder Tabelle, weil dort jeder Ordner einem user zugeordnet ist. Außerdem werden die PNs in der Tabelle phpbb_privmsgs_to den Usern zugeordnet - jede Nachricht existiert nur ein Mal, auch wenn sie an viele User zugestellt wird.

Dementsprechend sollten eventuelle SQL Befehle hier ausgeführt werden. Mich wundert, dass sowas nicht mit einem der Buttons auf der ACP Startseite synchronisiert wird.

Wenn es keine PNs gibt kannst du die natürlich einfach auf 0 setzen, ansonsten musst du zählen lassen.

Probier mal (ACHTUNG NUR KURZ GETESTET, MACH DAS ERST MAL AN EINEM BACKUP O.Ä.)

Code: Alles auswählen

UPDATE phpbb_privmsgs_folder f
LEFT JOIN phpbb_privmsgs_to tx ON tx.folder_id = f.folder_id
SET pm_count = (

SELECT COUNT(t.msg_id) 
FROM phpbb_privmsgs_to t 
WHERE tx.folder_id = t.folder_id
GROUP BY t.folder_id

)
Das sollte die PNs neu zählen und den gezählten Wert für alle Ordner neu in die Tabelle schreiben. Ist ein wenig blöd von der Syntax her, aber UPDATE ... LEFT JOIN .... SET pm_count = COUNT(...) mochte es leider nicht. Bei einem kurzen Test habe ich die Zahl der PNs absichtlich zunächst gefälscht und anschließend, nach Ausführen des Queries, waren sie wieder auf dem alten Wert.

Vorsicht, das Query kann bei vielen PN Ordnern (=vielen Usern) ein wenig dauern, effektiv ist das eine SELECT Anweisung pro Zeile in der Tabelle.

EDIT: Es geht auch ohne das LEFT JOIN

Code: Alles auswählen

UPDATE phpbb_privmsgs_folder f
SET pm_count = (

SELECT COUNT(t.msg_id) 
FROM phpbb_privmsgs_to t 
WHERE f.folder_id = t.folder_id
GROUP BY t.folder_id

)
Macht aber praktisch keinen Unterschied.
Es wäre möglich, dass es noch notwendig ist das Feld pm_deleted zu berücksichtigen um eine korrekte Anzahl zu haben. Dann gehört hinter die WHERE Zeile noch ein AND t.pm_deleted = 0.

Ggf. musst du hinterher noch den Cache leeren.