mortido

Рейтинг
61
Регистрация
01.10.2014
mariklab:
Рекламируешь?

еще бы. рекламирую сайт об игре на Seo форуме

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

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

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

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

очень вовремя они у вас кончились) работает все. сори, что так много времени отнял)

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

так вообще ничего не выводит, если только после WHERE прописать cost , то тогда выводит, но с точностью также как и раньше

вот попробовал:

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

}

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

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

да, у одного есть и в некоторых вариантах кода, при 0 и 0 он выводил его, но в этом не хочет

ну это должно работать как и 1 и 1, то есть если ввести от 0 до 0, то выводятся все, что имеет стоимость 0. при 1 и 1 - это работает, а при 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}";

}

проблема только, если ввести в оба поля 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}";

}

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

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

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

}

bupy7:
$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

Всего: 170