Лучший вариант:
function wherePriceBetween($from_price, $to_price){
$sql = "SELECT * from `table` where `price` BETWEEN {$from_price} AND {$to_price}";
//....
}
Для вашего случая:
function search($price_on, $price_to){
$query = "SELECT * FROM `table` WHERE 1=1";
if($price_on) $query .= " AND `price-on` = {$price_on}";
if($price_to) $query .= " AND `price-to` = {$price_to}";
}
p.s. вместо равно мне кажется нужно поставить больше или меньше + ровно, т.к. по контексту идет поиск ОТ какого-то ДО какого-то, т.е.:
function search($price_on, $price_to){
$query = "SELECT * FROM `table` WHERE 1=1";
if($price_on) $query .= " AND `price-on` >= {$price_on}";
if($price_to) $query .= " AND `price-to` <= {$price_to}";
}