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";