diff options
Diffstat (limited to 'includes/database.inc')
-rw-r--r-- | includes/database.inc | 18 |
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); } } |