bupy7

bupy7
Рейтинг
30
Регистрация
18.03.2014
Должность
Web-developer

На данный момент работаю дальше с creozby.

mortido:
сори, что так много времени отнял)

да ладн) обращайтесь)

$result = mysql_query("SELECT * FROM cards WHERE class_id $query_cost", $link);

идеи у меня кончились))

---------- Добавлено 18.02.2015 в 00:09 ----------

Если бы я мог пощупать.... Так не ясно в чем косяк. По сути всё должно работать, т.к. я даже у себя проверил.

mortido:
та же проблема

ну я и не написал, что это её решит.

вместо

$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

mortido:
но в этом не хочет

может ему другие фильтры мешают? кусок кода рабочий, у вас в другом проблема. поправьте только немного:

$start_cost = $_GET['start_cost'] != '' ? (int)$_GET['start_cost'] : null;

$end_cost = $_GET['end_cost'] != '' ? (int)$_GET['end_cost'] : null;

mortido:
ну это должно работать как и 1 и 1, то есть если ввести от 0 до 0, то выводятся все, что имеет стоимость 0. при 1 и 1 - это работает, а при 0 и 0 - ничего не выводит

это так же и для 0 и 0 работает. а у вас в базе есть хоть одно 0е значение у cost?

---------- Добавлено 17.02.2015 в 23:47 ----------

Вот, у меня бы отобразились все с 0 значением. http://prntscr.com/66e0wn

mortido:
проблема только, если ввести в оба поля 0, то тогда ничего не выводится

а должно что выводится?

mortido:
также( если ничего не вводить и применить фильтр, то просто ничего не выводится

тогда я уже запутался. предпоследний кусок кода, когда ничего не вводишь, то он собственно и не применяет этот фильтр.

Покажи что приходит в 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 {

$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}";

}

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}";

}

Всего: 55