Hallo,
wir haben erfolgreich einen Upgrade von 3.03 (PHP 5) nach 5.09 (PHP 8.3) gemacht, danke dafür, und können über die in der Listenkonfiguration (Gruppen, Rollen) hinterlegten Selektion nicht mehr die Mitglieder übers Eintrittsdatum selektieren wie in 3.03, siehe Hardcopy. Bei der gezeigten Selektion ist die Ergebnismenge leer, obwohl Einträge dafür vorhanden sind, bei anderen Selektionen erscheinen Einträge in der Ergebnismenge, die die Selektionsbedingungen nicht erfüllen. Wenn Ihr uns helfen könntet, wie wir dieses Problem lösen können, wäre das prima. Habe die gezeigten Selektionen auch mal auf mehrere "Spalten" aufgeteilt ohne "and" mit demselben Ergebnis.
Vielen Dank und viele Grüße
Christoph
Selektion über Listenkonfiguration nach Datum tut nicht mehr
- muelleneisen
- Beiträge: 7
- Registriert: 12. Mai 2026, 15:06
- muelleneisen
- Beiträge: 7
- Registriert: 12. Mai 2026, 15:06
Re: Selektion über Listenkonfiguration nach Datum tut nicht mehr
muelleneisen hat geschrieben: ↑19. Mai 2026, 08:47 Hallo,
am 30.05.2026 habe ich die SELECT-Statements ausgegeben und hier ist ein Teil des SELECTS, der relevant sein sollte:
AND mem_begin <= '2026-05-30 23:59:59' AND mem_end >= '2026-05-30 00:00:00' AND ( row3id25.usd_value >= 1991-01-01 AND row3id25.usd_value <= 1994-01-01 ) ORDER BY mem_leader DESC, row1id1.usd_value ASC, row3id25.usd_value ASCSELECT * FROM adm_users WHERE usr_uuid = ? SELECT * FROM adm_users INNER JOIN adm_user_data ON usd_usr_id = usr_id INNER JOIN adm_user_fields ON usf_id = usd_usf_id WHERE usr_id = ? -- $userIdSELECT lst_uuid, lst_name, lst_global FROM adm_lists WHERE lst_org_id = ? -- $gCurrentOrgId AND ( lst_usr_id = ? -- $gCurrentUserId OR lst_global = true) AND lst_name IS NOT NULL ORDER BY lst_global, lst_name
Komisch ist, dass bei (row3id25.usd_value >= 1991-01-01 AND row3id25.usd_value <= 1994-01-01 ) die Datumsfelder nicht in Hochkommata z.B. '1991-01-01' wie bei anderen Datumsfeldern eingeschlossen sind.
Viele Grüße
Christoph
- muelleneisen
- Beiträge: 7
- Registriert: 12. Mai 2026, 15:06
Re: Selektion über Listenkonfiguration nach Datum tut nicht mehr
Hallo,
habe nun die alte 3.03-Installation unter einer neuen Subdomain wiederhergestellt und habe dort das SELECT-Statement am 02.06.2026 ausgegeben, um es mit 5.09 vergleichen zu können:
SHOW COLUMNS FROM adm_rolesSHOW COLUMNS FROM adm_listsSHOW COLUMNS FROM adm_list_columnsSELECT DISTINCT mem_leader, usr_id, row1id25.usd_value, row2id2.usd_value, row3id2.usd_value, row4id24.usd_value, row5id12.usd_value FROM adm_members INNER JOIN adm_roles ON rol_id = mem_rol_id INNER JOIN adm_categories ON cat_id = rol_cat_id INNER JOIN adm_users ON usr_id = mem_usr_id LEFT JOIN adm_user_data row1id25 ON row1id25.usd_usr_id = usr_id AND row1id25.usd_usf_id = 25 LEFT JOIN adm_user_data row2id2 ON row2id2.usd_usr_id = usr_id AND row2id2.usd_usf_id = 2 LEFT JOIN adm_user_data row3id2 ON row3id2.usd_usr_id = usr_id AND row3id2.usd_usf_id = 2 LEFT JOIN adm_user_data row4id24 ON row4id24.usd_usr_id = usr_id AND row4id24.usd_usf_id = 24 LEFT JOIN adm_user_data row5id12 ON row5id12.usd_usr_id = usr_id AND row5id12.usd_usf_id = 12 WHERE usr_valid = 1 AND rol_id IN (2) AND ( cat_org_id = 1 OR cat_org_id IS NULL ) AND mem_begin <= '2026-06-02 23:59:59' AND mem_end >= '2026-06-02 00:00:00' AND ( row1id25.usd_value >= '1991-01-01' AND row1id25.usd_value < '1994-08-01' ) AND ( UPPER(row5id12.usd_value) IS NOT NULL OR EXISTS (SELECT 1 FROM adm_user_data row5id12s WHERE row5id12s.usd_usr_id = usr_id AND row5id12s.usd_usf_id = 12) ) ORDER BY mem_leader DESC, row1id25.usd_value ASCSHOW COLUMNS FROM adm_usersSHOW COLUMNS FROM adm_user_data
Der Unterschied zwischen 3.03 und 5.09 ist neben den unterschiedlichen Bezeichnern row3id25.usd_value (5.09) und row1id25.usd_value (3.03), dass die Datumsfelder wie row3id25.usd_value in 5.09 nicht in Hochkommata abgefragt werden (1991-01-01) und in 3.03 in Hochkommata abgefragt werden ('1991-01-01') und sich dadurch unterschiedliche Selektionsergebnisse zwischen 5.09 und 3.03 ergeben, könntet Ihr mal schauen, ob das die Ursache sein könnte und das ggfs. korrigieren?
Vielen Dank und viele Grüße
Christoph
habe nun die alte 3.03-Installation unter einer neuen Subdomain wiederhergestellt und habe dort das SELECT-Statement am 02.06.2026 ausgegeben, um es mit 5.09 vergleichen zu können:
SHOW COLUMNS FROM adm_rolesSHOW COLUMNS FROM adm_listsSHOW COLUMNS FROM adm_list_columnsSELECT DISTINCT mem_leader, usr_id, row1id25.usd_value, row2id2.usd_value, row3id2.usd_value, row4id24.usd_value, row5id12.usd_value FROM adm_members INNER JOIN adm_roles ON rol_id = mem_rol_id INNER JOIN adm_categories ON cat_id = rol_cat_id INNER JOIN adm_users ON usr_id = mem_usr_id LEFT JOIN adm_user_data row1id25 ON row1id25.usd_usr_id = usr_id AND row1id25.usd_usf_id = 25 LEFT JOIN adm_user_data row2id2 ON row2id2.usd_usr_id = usr_id AND row2id2.usd_usf_id = 2 LEFT JOIN adm_user_data row3id2 ON row3id2.usd_usr_id = usr_id AND row3id2.usd_usf_id = 2 LEFT JOIN adm_user_data row4id24 ON row4id24.usd_usr_id = usr_id AND row4id24.usd_usf_id = 24 LEFT JOIN adm_user_data row5id12 ON row5id12.usd_usr_id = usr_id AND row5id12.usd_usf_id = 12 WHERE usr_valid = 1 AND rol_id IN (2) AND ( cat_org_id = 1 OR cat_org_id IS NULL ) AND mem_begin <= '2026-06-02 23:59:59' AND mem_end >= '2026-06-02 00:00:00' AND ( row1id25.usd_value >= '1991-01-01' AND row1id25.usd_value < '1994-08-01' ) AND ( UPPER(row5id12.usd_value) IS NOT NULL OR EXISTS (SELECT 1 FROM adm_user_data row5id12s WHERE row5id12s.usd_usr_id = usr_id AND row5id12s.usd_usf_id = 12) ) ORDER BY mem_leader DESC, row1id25.usd_value ASCSHOW COLUMNS FROM adm_usersSHOW COLUMNS FROM adm_user_data
Der Unterschied zwischen 3.03 und 5.09 ist neben den unterschiedlichen Bezeichnern row3id25.usd_value (5.09) und row1id25.usd_value (3.03), dass die Datumsfelder wie row3id25.usd_value in 5.09 nicht in Hochkommata abgefragt werden (1991-01-01) und in 3.03 in Hochkommata abgefragt werden ('1991-01-01') und sich dadurch unterschiedliche Selektionsergebnisse zwischen 5.09 und 3.03 ergeben, könntet Ihr mal schauen, ob das die Ursache sein könnte und das ggfs. korrigieren?
Vielen Dank und viele Grüße
Christoph