Zähler bei den PN stimmt nicht

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Zähler bei den PN stimmt nicht

Beitrag 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 ?
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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%
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag von zx9r-treiber »

Hat vielleicht sonst jemand noch einen Vorschlag wo ich suchen könnte oder wie ich diesen Zählerfehler beseitigen kann ?
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Lehrling
Ehemaliges Teammitglied
Beiträge: 3833
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag von Lehrling »

Hallo,
wir hatten mal ein ähnliches Problem. Hier: viewtopic.php?f=74&t=222061
Vielleicht hilft dir diese Diskussion weiter.
LG Beate
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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.
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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 ?????
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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.
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Benutzeravatar
zx9r-treiber
Mitglied
Beiträge: 1401
Registriert: 05.10.2007 16:26
Wohnort: Moormerland
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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 ....
Gruß
M&K (Michael & Kathy)
"Unser Problem ist auch nicht die Globale Erwärmung ..... sondern die Globale Verblödung!"
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Zähler bei den PN stimmt nicht

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“