Index: database.inc =================================================================== --- database.inc (revision 165) +++ database.inc (working copy) @@ -272,27 +272,27 @@ $new = "WHERE $where "; } $new = " $join $new"; - if (strpos($query, 'WHERE')) { - $query = str_replace('WHERE', $new .'AND (', $query); + if ($pos = strrpos($query, 'WHERE')) { + $query = substr($query, 0, $pos) . $new .'AND ('. substr($query, $pos + 5); $insert = ') '; } else { $insert = $new; } - if (strpos($query, 'GROUP')) { + if ($pos = strpos($query, 'GROUP', $pos)) { $replace = 'GROUP'; } - elseif (strpos($query, 'ORDER')) { + elseif ($pos = strpos($query, 'ORDER', $pos)) { $replace = 'ORDER'; } - elseif (strpos($query, 'LIMIT')) { + elseif ($pos = strpos($query, 'LIMIT', $pos)) { $replace = 'LIMIT'; } else { $query .= $insert; } if (isset($replace)) { - $query = str_replace($replace, $insert . $replace, $query); + $query = substr($query, 0, $pos) . str_replace($replace, $insert . $replace, substr($query, $pos)); } }