Advanced filter in CB List?

13 years 3 months ago #149751 by Ducatiklubben
Advanced filter in CB List? was created by Ducatiklubben
We're having trouble creating advanced filter in CB List. This query works fine in phpmyAdmin:

SELECT * FROM ducati_comprofiler
LEFT JOIN ducati_users ON(ducati_comprofiler.id=ducati_users.id)
LEFT JOIN ducati_cbsubs_subscriptions ON(ducati_comprofiler.id=ducati_cbsubs_subscriptions.user_id)
WHERE SUBSTRING(ducati_cbsubs_subscriptions.expiry_date,1,4)=2011


How should it look in advanced filter? This doesn't work either:

( SELECT '*' FROM `ducati_comprofiler`
LEFT JOIN `ducati_users` ON(`ducati_comprofiler.id`=`ducati_users.id`)
LEFT JOIN `ducati_cbsubs_subscriptions` ON(`ducati_comprofiler.id`=`ducati_cbsubs_subscriptions.user_id`)
WHERE SUBSTRING(`ducati_cbsubs_subscriptions.expiry_date`,1,4)='2011' )

Please Log in to join the conversation.

13 years 3 months ago #149790 by krileon
Replied by krileon on topic Re:Advanced filter in CB List?
That's just a select query and not a filter. Filters are appended as AND to a WHERE statement. So your filter is being appended to the userlist query as follows.

[code:1]
(AND ( SELECT '*' FROM `ducati_comprofiler` LEFT JOIN `ducati_users` ON(`ducati_comprofiler.id`=`ducati_users.id`) LEFT JOIN `ducati_cbsubs_subscriptions` ON(`ducati_comprofiler.id`=`ducati_cbsubs_subscriptions.user_id`) WHERE SUBSTRING(`ducati_cbsubs_subscriptions.expiry_date`,1,4)='2011' ))
[/code:1]

The below query should do what you're wanting.

[code:1]
( ( SELECT SUBSTRING( `expiry_date`, 1, 4 ) FROM `#__cbsubs_subscriptions` WHERE `user_id` = [user_id] LIMIT 1 ) = '2011' )
[/code:1]


Kyle (Krileon)
Community Builder Team Member
Before posting on forums: Read FAQ thoroughly + Read our Documentation + Search the forums
CB links: Documentation - Localization - CB Quickstart - CB Paid Subscriptions - Add-Ons - Forge
--
If you are a Professional, Developer, or CB Paid Subscriptions subscriber and have a support issue please always post in your respective support forums for best results!
--
If I've missed your support post with a delay of 3 days or greater and are a Professional, Developer, or CBSubs subscriber please send me a private message with your thread and will reply when possible!
--
Please note I am available Monday - Friday from 8:00 AM CST to 4:00 PM CST. I am away on weekends (Saturday and Sunday) and if I've missed your post on or before a weekend after business hours please wait for the next following business day (Monday) and will get to your issue as soon as possible, thank you.
--
My role here is to provide guidance and assistance. I cannot provide custom code for each custom requirement. Please do not inquire me about custom development.

Please Log in to join the conversation.

13 years 3 months ago #149813 by Ducatiklubben
Replied by Ducatiklubben on topic Re:Advanced filter in CB List?
Thanks! The syntax seems to okay, but still all members are listed. What we want to do is to list members that paied subsctiption (with CB Subs) for current year. How do we do that?

Please Log in to join the conversation.

13 years 3 months ago #149815 by nant
Replied by nant on topic Re:Advanced filter in CB List?
Ducatiklubben wrote:

Thanks! The syntax seems to okay, but still all members are listed. What we want to do is to list members that paied subsctiption (with CB Subs) for current year. How do we do that?


Best thing to do is to use CBSubs CB Fields integration to assign a value to a CB field when a subscription happens and remove the value when subscription ends - then just filter off this value to create your list.

Please Log in to join the conversation.

Moderators: beatnantkrileon
Time to create page: 0.187 seconds

Facebook Twitter LinkedIn