- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Нет, подожди. Я так и не понял, а чем вариант klassev не катит? О_о
$start_cost = $_GET['start_cost'] ? (int)$_GET['start_cost'] : null;
$end_cost = $_GET['start_cost'] ? (int)$_GET['start_cost'] : null;
if (!is_null($start_cost) && !is_null($end_cost)) {
$query_cost = " AND cost BETWEEN {$start_cost} AND {$end_cost}";
} elseif ($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;
if (!is_null($start_cost) && !is_null($end_cost)) {
$query_cost = " AND cost BETWEEN {$start_cost} AND {$end_cost}";
} else {
$query_cost = ' AND cost>=' . (int)$start_cost;
}
просто выводит то, что я ввел в первое поле. то есть ввел 2 и второе поле оставил пустым или даже заполнил, все равно выводит только то, что стоит 2
---------- Добавлено 17.02.2015 в 22:59 ----------
Нет, подожди. Я так и не понял, а чем вариант klassev не катит? О_о
он не катил тем, что работал только если заполнены оба поля или последнее, а если оба поля оставались пустым, то это засчитывалось как найти в диапазоне от 0 до 0
Я уже забыл все твои условия. Так?
$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}";
}
$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>={$start_cost}";
}
ну это самый близкий вариант. здесь: http://ru.hearthhead.com/cards . если ввести от 0 до 0, то он выведет эти данные, а этот код просто выводит все. если я ввел от 10 до 5, то он ничего не выводит, что мне и нужно, но если ввожу от 10 до 0, то ноль просто игнорируется и выводится все от 10
mortido, поправь код. Я изменил пока ты проверял.
---------- Добавлено 17.02.2015 в 23:11 ----------
$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) && $start_cost <= $end_cost) {
$query_cost = " AND cost BETWEEN {$start_cost} AND {$end_cost}";
} elseif (!is_null($start_cost)) {
$query_cost = " AND cost>={$start_cost}";
}
mortido, поправь код. Я изменил пока ты проверял.
одно осталось: при от 0 до 0 ничего не выводит, только это исправить нужно
я про этот кусок кода:
$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}";
}
if ($_GET['start_cost'] == '' && $_GET['end_cost'] == '') {
$start_cost = $end_cost = 0;
} else {
$start_cost = $_GET['start_cost'] != '' ? (int)$_GET['start_cost'] : null;
$end_cost = $_GET['end_cost'] != '' ? (int)$_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}";
}
if ($_GET['start_cost'] == '' && $_GET['end_cost'] == '') {
$start_cost = $end_cost = 0;
} else {
$start_cost = $_GET['start_cost'] != '' ? (int)$_GET['start_cost'] : null;
$end_cost = $_GET['end_cost'] != '' ? (int)$_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}";
}
также( если ничего не вводить и применить фильтр, то просто ничего не выводится
также( если ничего не вводить и применить фильтр, то просто ничего не выводится
тогда я уже запутался. предпоследний кусок кода, когда ничего не вводишь, то он собственно и не применяет этот фильтр.
Покажи что приходит в GET когда:
1) ничего не вводишь
2) вводишь 0 и 0
3) вводишь 0 и 3
4) вводишь 3 и 0
5) вводишь 1 и 3
6) вводишь 3 и 1
7) вводишь 3 и 3
8) первое пустое, второе 0
9) первое пустое, второе 3
10) первое 0, второе пустое
11) первое 3, второе пустое
добавив в начало var_dump($_GET['start_cost'], $_GET['end_cost']);die();
ну в этом варианте все в порядке:
$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}";
}
проблема только, если ввести в оба поля 0, то тогда ничего не выводится
---------- Добавлено 17.02.2015 в 23:33 ----------
1) ничего не вводишь - string(0) "" string(0) ""
2) вводишь 0 и 0 - string(1) "0" string(1) "0"
3) вводишь 0 и 3 - string(1) "0" string(1) "3"
4) вводишь 3 и 0 - string(1) "3" string(1) "0"
5) вводишь 1 и 3 - string(1) "1" string(1) "3"
6) вводишь 3 и 1 - string(1) "3" string(1) "1"
7) вводишь 3 и 3 - string(1) "3" string(1) "3"
8) первое пустое, второе 0 - string(0) "" string(1) "0"
9) первое пустое, второе 3 - string(0) "" string(1) "3"
10) первое 0, второе пустое - string(1) "0" string(0) ""
11) первое 3, второе пустое - string(1) "3" string(0) ""
это при коде:
$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}";
}