SQL-Statement erstellen lassen

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
Antworten
harryman
Beiträge: 141
Registriert: 25. Jul 2007, 22:58
Kontaktdaten:

SQL-Statement erstellen lassen

Beitrag von harryman »

Hallo zusammen

Vor dem Update auf die aktuelle Version 2.1.3 (vorher 2.0.9) konnte ich mir das SQL-Statement für eine Abfrage über Eigene Liste erstellen lassen. Dafür musste ich in der Datei mylist_prepare.php in Zeile 190 den Kommentar entfernen ...

Besteht diese Möglichkeit immer noch? Die Datei mylist_prepare.php gibt es jedoch nicht mehr.

Besten Dank
Gruss
Harry
Benutzeravatar
fasse
Administrator
Beiträge: 6229
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hi Harry,

das geht auch weiterhin, nur an anderer Stelle. In der list_show.php in Zeile 164 muss dort $main_sql ausgegeben werden.

Code: Alles auswählen

echo $main_sql;
Gruß
Fasse
harryman
Beiträge: 141
Registriert: 25. Jul 2007, 22:58
Kontaktdaten:

Beitrag von harryman »

Vielen Dank für die prompte Antwort.

Das erstellte sql wird aus eine php-Datei heraus aufgerufen und soll nur die aktiven Members anzeigen. Bei der alten Version genügte die Abfrage vom Feld mem_valid = 1. Dieses Feld gibt es nun nicht mehr.

Hier das sql , welches Admidio ausspuckt.

Code: Alles auswählen

SELECT mem_leader, usr_id, row1id1.usd_value, row2id2.usd_value FROM adm_roles, adm_categories, adm_members, adm_users LEFT JOIN adm_user_data row1id1 ON row1id1.usd_usr_id = usr_id AND row1id1.usd_usf_id = 1 LEFT JOIN adm_user_data row2id2 ON row2id2.usd_usr_id = usr_id AND row2id2.usd_usf_id = 2 WHERE rol_id IN (2, 2) AND rol_cat_id = cat_id AND cat_org_id = 1 AND mem_rol_id = rol_id AND mem_begin <= "2009-05-28" AND mem_end > "2009-05-28" AND mem_usr_id = usr_id AND usr_valid = 1 ORDER BY mem_leader DESC , row1id1.usd_value ASC
Leider funktioniert diese Abfrage nur, wenn ich mem_begin <= "2009-05-28" AND mem_end > "2009-05-28" entferne.

Gibt es eine elegantere Möglichkeit, die aktiven Mitglieder auszuwählen ausser das Feld mem_end auszuwerten?

Leider sind meine sql-Kenntnisse nicht besonders.

Danke und Gruss
Harald
Benutzeravatar
fasse
Administrator
Beiträge: 6229
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Harald,

nein, du musst mit Version 2.1 die Gültigkeit mit mem_begin und mem_end auswerten. Allerdings kannst du anstelle eines festen Datums dort dann mit NOW() arbeiten:

Code: Alles auswählen

ND mem_begin <= NOW() AND mem_end > NOW()
Somit ist das Statement etwas dynamischer.

Wir ermitteln vorher das aktuelle Datum über PHP und setzen es dann fix in das SQL-Statement, deshalb sieht das ausgegebene STatement etwas statisch aus.

Gruß
Fasse
harryman
Beiträge: 141
Registriert: 25. Jul 2007, 22:58
Kontaktdaten:

Beitrag von harryman »

Hallo fasse

Das wars. Vielen Dank für deinen superschnelle Hilfe.

Gruss
Harald
Antworten