Seite 1 von 3

[3.2] Wer hat dieses Thema besucht

Verfasst: 11.03.2019 16:10
von donsenilo
Es gibt ja bereits ein paar ähnliche Erweiterungen, aber noch keine die anzeigt, wer ein Thema besucht hat.
Also z.B.:
13 Gäste, User1, User2

Wäre sowas möglich ? Oder gibt es bereits so eine Erweiterung (gefunden habe ich nichts entsprechendes) ?

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 11.03.2019 17:14
von vfrblue
Hallo, schau mal hier: Who Visited This Topic

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 11.03.2019 18:07
von donsenilo
Danke für den Tipp !

Aber diese Ext habe ich schon und die zeigt leider nicht an, wieviel Gäste den jeweiligen Topic gelesen haben.

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 11.03.2019 18:09
von chris1278
Hast du auch für gäste entsprechende Rechte gesetzt. Wenn ich mir die Ext mal so anschaue auf den Ersten blick müssen die entsprechenden Gruppen/user auch entsprechende Rechte haben.

Re: [3.3.2] Wer hat dieses Thema besucht

Verfasst: 24.01.2021 15:31
von einsamer Wolf
Sorry Leute , das ich hier in den alten Thread noch mal so rein platze.

Genau so etwas hatte ich gesucht , der Install verlief ohne Fehler.
Wenn ich jetzt ein Thema öffnen will bekomme ich folgende Fehlermeldung.
Ich hoffe mal, das damit der eine oder andere was Anfangen kann.

Das ich mein Forum weiter nutzen kann musste ich die Erweiterung Deaktivieren.
Mein Forum
https://verso-forum.de/

Mein System:
PHP-Version: 7.3.26
Version des Boards: 3.3.2


Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [mysqli]

Ausdruck Nr. 3 der SELECT-Liste befindet sich nicht in der GROUP BY-Klausel und enthält die nicht aggregierte Spalte 'db_313051_21.w.counter_user', die funktional nicht von den Spalten in der GROUP BY-Klausel abhängig ist. Dies ist nicht kompatibel mit sql_mode = only_full_group_by [1055]

SQL

SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type. user_avatar_height, u.user_avatar_width, u.user_type, SUM (w.counter_user) AS total FROM phpbb_whovisitedthistopic w, phpbb_users u WHERE w.topic_id = 185 UND w.user_id = u.user_id GROUP BY w. 10

HINTERGRUND

DATEI: (nicht von PHP angegeben)
LINE: (nicht von PHP angegeben)
CALL: msg_handler ()

DATEI: [ROOT] /phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error ()

DATEI: [ROOT] / phpbb / db / driver / mysqli.php
LINE: 195
CALL: phpbb \ db \ driver \ driver-> sql_error ()

DATEI: [ROOT] /phpbb/db/driver/mysql_base.php
LINE: 45
CALL: phpbb \ db \ driver \ mysqli-> sql_query ()

DATEI: [ROOT] /phpbb/db/driver/driver.php
LINE: 296
CALL: phpbb \ db \ driver \ mysql_base -> _ sql_query_limit ()

DATEI:[ROOT] /phpbb/db/driver/factory.php
LINE: 337
CALL: phpbb \ db \ driver \ driver-> sql_query_limit ()

DATEI: [ROOT] /ext/dmzx/whovisitedthistopic/event/listener.php
LINE: 189
CALL: phpbb \ db \ driver \ factory-> sql_query_limit ()

DATEI: [ROOT] /vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 214
CALL: dmzx \ whovisitedthistopic \ event \ listener-> viewtopic_get_post_d

: [ROOT] /vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 44
CALL: Symfony \ Component \ EventDispatcher \ EventDispatcher-> doDispatch ()

DATEI: [ROOT] /phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony \ Component \ EventDispatcher \ EventDispatcher-> dispatch ()

DATEI: [ROOT] /phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb \ event \ dispatcher-> dispatch ()

DATEI: [ROOT] /viewtopic.php
LINE: 1321
CALL: phpbb \ event \ dispatcher-> trigger_event ()

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 24.01.2021 18:03
von chris1278
Also ich hab mir das bei ihm angeschaut und hier die original meldung in englisch:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]

Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db_313051_21.w.counter_user' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by [1055]

SQL

SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total FROM phpbb_whovisitedthistopic w, phpbb_users u WHERE w.topic_id = 185 AND w.user_id = u.user_id GROUP BY w.user_id ORDER BY w.date DESC LIMIT 10

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 195
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/mysql_base.php
LINE: 45
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 296
CALL: phpbb\db\driver\mysql_base->_sql_query_limit()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 337
CALL: phpbb\db\driver\driver->sql_query_limit()

FILE: [ROOT]/ext/dmzx/whovisitedthistopic/event/listener.php
LINE: 189
CALL: phpbb\db\driver\factory->sql_query_limit()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 214
CALL: dmzx\whovisitedthistopic\event\listener->viewtopic_get_post_data()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 44
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/viewtopic.php
LINE: 1321
CALL: phpbb\event\dispatcher->trigger_event()
Desweiteren lädt im acp immer weiter beim mpdul so ein loading-page gif ohne fertig zu werden:

https://prnt.sc/xk345k


Wobei das eher zweitrangig ist. Beim Aufruf eines Themas kommt eben besagte fehlermeldung.

Ich würde hier mal vermuten das irgendwas mit der sql Abfrage nicht in ordnung ist.

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 24.01.2021 22:03
von BNa
Hallo SQL-Freunde,

die Abfrage "ist im Grunde(!)" gültig, aber bei manchen SQL-Konstellationen (zB. only_full_group_by) zickt's schonmal rum.
Grund ist, das dann zB. GROUP oder SUM Funktionen nicht auch noch zB. MIN MAX etc. enthalten dürfen
oder SUM(i.rgendwas) nicht vor GROUP stehen darf usf. - Hab da auch schon Verzweiflung gehabt, ist aber meist zu lösen.

Müsste also in der Syntax (oder ähnlich) wie hier umgebaut werden:
https://stackoverflow.com/a/41887524 *
*(In dem Topic sind noch andere Lösungen enthalten,also eventuell ganz lesen)

Die angemeckerte Abfrage in der listener.php:

Code: Alles auswählen

			$query = 'SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
				FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
				WHERE w.topic_id = ' . (int) $topic_id . '
					AND w.user_id = u.user_id
				GROUP BY w.user_id
				ORDER BY w.date DESC';
			$row_query = $this->db->sql_query_limit($query, $value);
Es wird sich letztlich über DATABASE_NAME.w.counter_user beschwert (doppelter Kontext von w.counter_user)

https://www.google.de/search?ei=ItwNYNe ... ted+column

----------------------------------------------

Mögliche Lösung (mal ins Blaue 1):

Code: Alles auswählen

			$query = 'SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
				FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
				WHERE w.topic_id = ' . (int) $topic_id . '
					AND w.user_id = u.user_id
				GROUP BY w.user_id, SUM(w.counter_user)
				ORDER BY w.date DESC';
			$row_query = $this->db->sql_query_limit($query, $value);
Oder ins Blaue 2:

Code: Alles auswählen

			$query = 'SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
				FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
				WHERE w.topic_id = ' . (int) $topic_id . '
					AND w.user_id = u.user_id
				GROUP BY w.user_id, w.counter_user
				ORDER BY w.date DESC';
			$row_query = $this->db->sql_query_limit($query, $value);
Blue Three:

Code: Alles auswählen

			$query = 'SELECT w.user_id, w.topic_id, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
				FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
				WHERE w.topic_id = ' . (int) $topic_id . '
					AND w.user_id = u.user_id
				GROUP BY w.user_id
				ORDER BY w.date DESC';
			$row_query = $this->db->sql_query_limit($query, $value);

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 25.01.2021 02:49
von chris1278
Local scheinen sie zu funktionieren aber wenn ich die änderungen im live forum teste kommen immer noch fehlermeldungen.

Bei lösung 2:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]

Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db_313051_21.w.date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by [1055]

SQL

SELECT w.user_id, w.topic_id, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total FROM phpbb_whovisitedthistopic w, phpbb_users u WHERE w.topic_id = 133 AND w.user_id = u.user_id GROUP BY w.user_id ORDER BY w.date DESC LIMIT 10

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 195
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/mysql_base.php
LINE: 45
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 296
CALL: phpbb\db\driver\mysql_base->_sql_query_limit()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 337
CALL: phpbb\db\driver\driver->sql_query_limit()

FILE: [ROOT]/ext/dmzx/whovisitedthistopic/event/listener.php
LINE: 198
CALL: phpbb\db\driver\factory->sql_query_limit()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 214
CALL: dmzx\whovisitedthistopic\event\listener->viewtopic_get_post_data()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 44
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/viewtopic.php
LINE: 1321
CALL: phpbb\event\dispatcher->trigger_event()
mit Lösung nummer 3:

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]

Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db_313051_21.w.date' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by [1055]

SQL

SELECT w.user_id, w.topic_id, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total FROM phpbb_whovisitedthistopic w, phpbb_users u WHERE w.topic_id = 185 AND w.user_id = u.user_id GROUP BY w.user_id ORDER BY w.date DESC LIMIT 255

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 195
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/mysql_base.php
LINE: 45
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 296
CALL: phpbb\db\driver\mysql_base->_sql_query_limit()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 337
CALL: phpbb\db\driver\driver->sql_query_limit()

FILE: [ROOT]/ext/dmzx/whovisitedthistopic/event/listener.php
LINE: 197
CALL: phpbb\db\driver\factory->sql_query_limit()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 214
CALL: dmzx\whovisitedthistopic\event\listener->viewtopic_get_post_data()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 44
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/viewtopic.php
LINE: 1321
CALL: phpbb\event\dispatcher->trigger_event()
Ich habe hier noch eine Kuriosität.

Ich habe diesmal in meinem Forum installiert und es läuft ohne Fehlermeldung.
Ich habe das local installiert und es läuft ohne Fehlermeldung.

Nur auf dem Verso-forum.de läuft es nicht.

local läuft:
phpbb 3.3.2 + php 7.3.13 + MySQL(i) 10.4.11-MariaDB

Auf meinem eigenen Server läuft:
Phpbb 3.3.2 + php 7.3.21 + MySQL(i) 5.7.29

Und auf Verso-forum.de läuft:
phpbb 3.3.2 + php 7.3.26 - MySQL(i) 5.7.30-33-log

Könnte das evtl. an der Mysql Datenbank liegen das es auf verso nicht läuft?

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 25.01.2021 07:48
von 69bruno
Versuch doch mal testweise das hier:

(Aus Stackoverflow)
The tricky thing here is that if you don't set sql_mode at all in my.cnf ( i.e it's absent) when you upgrade the mysql 5.7 you suddenly get this only_full_group_by issue by default . set sql_mode='' in my.cnf solves the issue

Re: [3.2] Wer hat dieses Thema besucht

Verfasst: 25.01.2021 11:52
von BNa
Hallo Bruno,

seh ich genauso als nächste Möglichkeit. Daher, bevor Chris an der SQL-Server Config dauerhaft was ändert,
einfach mal testweise die temporäre Variante des Deaktivierens von "only_full_group_by" probieren.

Hier beschrieben unter Variante (1):
(1) PHPMyAdmin

if you are using phpMyAdmin then change the "sql_mode" setting as mentioned in the below screenshot.
https://stackoverflow.com/a/51629259

Wichtig, vorher mal alle Änderungen an der Ext listener.php rückgängig machen und alle Browser- und Board-Caches leeren,
dann ab ins phpMyAdmin und die Ext sofort testen (weil die temporäre SQL-Änderungen nur bis zum Neustart des SQL-Server "wirkt" :wink: