Я уже забыл все твои условия. Так?
$start_cost = $_GET['start_cost'] != '' ? $_GET['start_cost'] : null;
$end_cost = $_GET['end_cost'] != '' ? $_GET['end_cost'] : null;
if (!is_null($start_cost) && !is_null($end_cost)) {
$query_cost = " AND cost BETWEEN {$start_cost} AND {$end_cost}";
} elseif (!is_null($start_cost)) {
$query_cost = " AND cost>={$start_cost}";
}
Нет, подожди. Я так и не понял, а чем вариант klassev не катит? О_о
$start_cost = $_GET['start_cost'] ? (int)$_GET['start_cost'] : null;
$end_cost = $_GET['start_cost'] ? (int)$_GET['start_cost'] : null;
} elseif ($start_cost) {
mortido, чувак, давай ТЗ. Нет ТЗ - давай до свидания. :D Пиши всё и сразу, что тебе нужно? Я и klassev уже запутались.
mortido, тогда просто сделайте как предлагал klassev в последний раз.
удивительно, видать у меня mysql особенный что ему не всё равно.---------- Добавлено 17.02.2015 в 22:20 ----------klassev, http://prntscr.com/66cl0b и http://prntscr.com/66clfo
тогда тупо вот так
$start_cost = (int)$_GET['start_cost'];
$end_cost = (int)$_GET['end_cost'];
if ($start_cost < $end_cost) {
$query_cost = " AND cost BETWEEN $start_cost AND $end_cost";
} else {
$query_cost = " AND cost BETWEEN $end_cost AND $start_cost";
---------- Добавлено 17.02.2015 в 22:14 ----------
в одном случае больше или равно в другом меньше или равно. что не так?)
я согласен с этим куском кода. кто спорит, но я выше написал вам суть вопроса автора. так бы и between хватило.
учитывая последние изменения
$start_cost=1; $end_cost=1; // результат 2 if $start_cost=1; $end_cost=2; // результат 1 if $start_cost=2; $end_cost=0; // результат 3 if $start_cost=0; $end_cost=2; // результат 4 if
что не так?
ну. тогда так делай.
if ($start_cost && $end_cost && $start_cost < $end_cost) { $query_cost = " AND cost BETWEEN {$start_cost} AND {$end_cost}"; } elseif ($start_cost && $end_cost && $start_cost == $end_cost) { $query_cost = " AND cost={$start_cost}"; } elseif ($start_cost > $end_cost) { $query_cost = " AND cost>={$start_cost}"; } elseif ($start_cost < $end_cost) { $query_cost = " AND cost<={$end_cost}"; }
да пожалуйста. обращайся. =)