summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/database.inc18
1 files changed, 9 insertions, 9 deletions
diff --git a/includes/database.inc b/includes/database.inc
index 299fd54eb..7fede7d19 100644
--- a/includes/database.inc
+++ b/includes/database.inc
@@ -269,30 +269,30 @@ function db_rewrite_sql($query, $primary_table = 'n', $primary_field = 'nid', $
if (!empty($where) || !empty($join)) {
if (!empty($where)) {
- $new = " WHERE $where ";
+ $new = "WHERE $where ";
}
$new = " $join $new";
if (strpos($query, 'WHERE')) {
- $replace = 'WHERE';
- $add = 'AND';
+ $query = str_replace('WHERE', $new .'AND (', $query);
+ $insert = ') ';
}
- elseif (strpos($query, 'GROUP')) {
+ else {
+ $insert = $new;
+ }
+ if (strpos($query, 'GROUP')) {
$replace = 'GROUP';
- $add = 'GROUP';
}
elseif (strpos($query, 'ORDER')) {
$replace = 'ORDER';
- $add = 'ORDER';
}
elseif (strpos($query, 'LIMIT')) {
$replace = 'LIMIT';
- $add = 'LIMIT';
}
else {
- $query .= $new;
+ $query .= $insert;
}
if (isset($replace)) {
- $query = str_replace($replace, "$new $add ", $query);
+ $query = str_replace($replace, $insert . $replace, $query);
}
}