На данный момент работаю дальше с creozby.
да ладн) обращайтесь)
$result = mysql_query("SELECT * FROM cards WHERE class_id $query_cost", $link);
идеи у меня кончились))---------- Добавлено 18.02.2015 в 00:09 ----------Если бы я мог пощупать.... Так не ясно в чем косяк. По сути всё должно работать, т.к. я даже у себя проверил.
ну я и не написал, что это её решит.
вместо
$result = mysql_query("SELECT * FROM cards WHERE class_id $query_cost $query_class $query_quality $query_nabor ", $link);
вставь
$result = mysql_query("SELECT * FROM cards WHERE $query_cost", $link);
и ты должен увидеть результат, где cost=0
может ему другие фильтры мешают? кусок кода рабочий, у вас в другом проблема. поправьте только немного:
$start_cost = $_GET['start_cost'] != '' ? (int)$_GET['start_cost'] : null;
$end_cost = $_GET['end_cost'] != '' ? (int)$_GET['end_cost'] : null;
это так же и для 0 и 0 работает. а у вас в базе есть хоть одно 0е значение у cost?---------- Добавлено 17.02.2015 в 23:47 ----------Вот, у меня бы отобразились все с 0 значением. http://prntscr.com/66e0wn
а должно что выводится?
тогда я уже запутался. предпоследний кусок кода, когда ничего не вводишь, то он собственно и не применяет этот фильтр.
Покажи что приходит в 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();
if ($_GET['start_cost'] == '' && $_GET['end_cost'] == '') {
$start_cost = $end_cost = 0;
} else {
}
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}";
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) {