Index: trunk/kernel/include/searchitems.php =================================================================== diff -u -r1157 -r1164 --- trunk/kernel/include/searchitems.php (.../searchitems.php) (revision 1157) +++ trunk/kernel/include/searchitems.php (.../searchitems.php) (revision 1164) @@ -518,28 +518,56 @@ } } - $SelectSQL .= " WHERE ("; - $SelectSQL .= implode(" or ",$this->WhereClauses); - $SelectSQL .= ")"; + if (count($this->WhereClauses)) + { + $normal_where = '('; // not - or + + $normal_where .= implode(" or ",$this->WhereClauses); + $normal_where .= ')'; + } + else + { + $normal_where = ''; + } + + $where = $normal_where; if (strlen($this->ExcludeWhereClause)) { - $SelectSQL .= ' AND '.$this->ExcludeWhereClause; + if (strlen($normal_where)) + { + $where .= ' AND '; + } + $where .= $this->ExcludeWhereClause; } if (count($this->RequireWhereClause)>0) { foreach ($this->RequireWhereClause as $clause_part) { - $SelectSQL .= ' AND ('.$clause_part.')'; + if (strlen($normal_where)) + { + $where .= ' AND '; + } + $where .= '('.$clause_part.')'; } } if(is_array($idlist)) { - $SelectSQL .= " AND (".$this->SourceTable.".ResourceId IN (".implode(",",$idlist)."))"; + if (strlen($normal_where)) + { + $where .= ' AND '; + } + $where .= '('.$this->SourceTable.'.ResourceId IN ('.implode(',',$idlist).'))'; } } + + if (!strlen($where)) + { + $where = '1'; + } + $SelectSQL .= " WHERE ".$where; + $SelectSQL .= " GROUP BY $idField "; //echo $SelectSQL."

\n";