View Issue Details

IDProjectCategoryView StatusLast Update
0015565phpList 3 pluginsGeneralpublic04-06-13 22:28
Reporterspiro Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Summary0015565: Incorrect record selection in Stacked Criteria
DescriptionIncorrect record selection occurs in various scenarios within stacked criteria selection with various field and operator types. Full details of those causing unexpected results are detailed in the following forum post http://forums.phplist.com/viewtopic.php?f=17&t=34980
Steps To ReproduceHTTP_Request
TagsNo tags attached.

Relationships

related to 0009983 resolvedmichiel phpList 3 application parentheses missing in sql statements in stacked criteria code, send_core.php 
related to 0015454 resolvedmichiel phpList 3 application database error 1064 when stacking attributes in 2.10.12 

Activities

michiel

28-04-11 17:18

administrator   ~0051184


you're not suggesting a code change. Do you think that 0009983 will solve it all? In that case this would be a duplicate of that issue

spiro

28-04-11 19:44

reporter   ~0051189

The missing parentheses only solve a small number of the resulting errors.
Referring to my forum post (link above):

Radio & select field types used with an "is not" operator need the sql adapting to include records where these field types are null.

Checkbox used with "is unchecked" operator, also needs sql updating to look at records where this field type is null.

Checkbox used with "is not unchecked", also needs sql updating, should look for those that are checked because even with the parentheses mod in place, this currently picks up records where someone has previously saved this field type with it checked but since updated their record to remove the check mark. Thus the field could have had nothing in it upon record creation if the field is non mandatory and thus be null, or a later saving of the record to remove the check mark results in the field being saved as blank or empty. The logic in the current sql is over complicating what should be being sought, i.e. just look for the check mark being present.

Checkbox used with "is not checked" is doing what "is not unchecked" should be doing. Just needs the sql moving to where the above (is not unchecked) is, so that the drop down operator description in the UI corresponds with the correct action.

Checkbox group used with "is" operator should be returning exact matches to the options within a group that are checked not just one option that matches. i.e. if a group has a,b,c,d options and user has a,b & c checked then this user should only be returned in the results if the search entered is for those that have a,b & c but not included in the results when only searching for a, b, c or d individually or any combination thereof other than a,b & c together.

Checkbox group used with "is not" operator also needs sql changing as currently not selecting correct records.

Dates, I suspect that a comma is being appended to the criteria that is built from the UI selection, hence the 1064 DB error that can occur when no users match. Sql doesn't seem right as it should be selecting users that don't have a date when using the "is not" operator, as well as those with dates that don't match.

Dates before or after given date should be subtracting a day or adding a day respectively from the search date entered.

I believe the above are the necessary changes required in addition to the additional parentheses issue (9983).

michiel

28-04-11 21:28

administrator   ~0051190

tha'ts brilliant, thanks. I'll try to find some time to look at it, once I've worked my way through other things.

Issue History

Date Modified Username Field Change
09-12-10 12:32 spiro New Issue
13-12-10 18:14 h2b2 Relationship added related to 0009983
13-12-10 18:15 h2b2 Relationship added related to 0015454
13-12-10 18:16 h2b2 Target Version => 2.10.13
28-04-11 17:18 michiel Note Added: 0051184
28-04-11 17:18 michiel Status new => feedback
28-04-11 19:44 spiro Note Added: 0051189
28-04-11 19:44 spiro Status feedback => new
28-04-11 21:28 michiel Note Added: 0051190
29-04-11 17:17 michiel Target Version 2.10.13 => 2.10.X
01-02-12 23:57 michiel Target Version 2.10.X => 2.11.X
31-05-12 03:33 michiel Priority urgent => normal
31-05-12 03:33 michiel Steps to Reproduce Updated View Revisions
01-11-12 11:31 michiel Severity major => minor
01-11-12 11:31 michiel Target Version 2.11.X => plugin Development
04-06-13 22:28 michiel Project phpList 3 application => phpList 3 plugins
04-06-13 22:28 michiel Category Message Send Process => General