фильтр выборки по цене

K
На сайте с 09.08.2007
Offline
134
#11

if (isset($_GET['start_cost']) && isset($_GET['end_cost']))

{

$start_cost = (int)$_GET['start_cost'];

$end_cost = (int)$_GET['end_cost'];

$query_cost = " AND cost BETWEEN $start_cost AND $end_cost";

}

M
На сайте с 01.10.2014
Offline
61
#12

хз. также, если заполняю первое поле и оставляю пустым второе - ничего не выводит.

Лучшая вап клик пп для выкупа подписок (https://mcwap.ru/?r=1153)
bupy7
На сайте с 18.03.2014
Offline
30
#13

klassev, вы тему читаете? =)

---------- Добавлено 17.02.2015 в 20:50 ----------

mortido:
хз. также, если заполняю первое поле и оставляю пустым второе - ничего не выводит.

да быть этого не может. у вас тогда должен был добавиться в запрос это AND cost=>{$start_cost}

А вы файл весь не можете прикрепить где этот поиск? Может где переопределяется?

M
На сайте с 01.10.2014
Offline
61
#14

вот так весь код выглядит:

<?

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

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

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

}

if ($_GET["nabor"])

{

$check_nabor = implode(',',$_GET["nabor"]);

}

if (!empty($check_nabor))

{

if(!empty($check_nabor)) $query_nabor = " AND nabor_id IN($check_nabor)";

}

if ($_GET["quality"])

{

$check_quality = implode(',',$_GET["quality"]);

}

if (!empty($check_quality))

{

if(!empty($check_quality)) $query_quality = " AND quality_id IN($check_quality)";

}

if ($_GET["class"])

{

$check_class = implode(',',$_GET["class"]);

}

if (!empty($check_class))

{

if(!empty($check_class)) $query_class = " AND class_id IN($check_class)";

}

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

if (mysql_num_rows($result) > 0 )

{

$row = mysql_fetch_array($result);

do

{

echo '

<img src="/wp-content/uploads/cards/'.$row["img"].'">

';

}

while ($row = mysql_fetch_array($result));

}

?>

bupy7
На сайте с 18.03.2014
Offline
30
#15

После

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

}

вставьте

var_dump($start_cost, $end_cost, $query_cost);die();

и вывод сюда.

K
На сайте с 09.08.2007
Offline
134
#16
bupy7:
klassev, вы тему читаете? =)

---------- Добавлено 17.02.2015 в 20:50 ----------


да быть этого не может. у вас тогда должен был добавиться в запрос это AND cost=>{$start_cost}

А вы файл весь не можете прикрепить где этот поиск? Может где переопределяется?

Что в теме я не заметил?

ЗЫ

разве

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

и

$start_cost = (int)$_GET['start_cost'];

это не одно и то же?

M
На сайте с 01.10.2014
Offline
61
#17

при заполненном первом поле: int(3) int(0) string(12) " AND cost=>3"

при пустых обоих полях: int(0) int(0) string(12) " AND cost=>0"

bupy7
На сайте с 18.03.2014
Offline
30
#18
mortido:
при заполненном первом поле: int(3) int(0) string(12) " AND cost=>3"
при пустых обоих полях: int(0) int(0) string(12) " AND cost=>0"

ну вот. что не так тогда?) в первом варианте выбор цены, которая больше или равна 3, во-втором выбор цены, которая больше или равна 0.

---------- Добавлено 17.02.2015 в 21:07 ----------

klassev:
Что в теме я не заметил?

Что isset всегда true будет давать.

klassev:

ЗЫ

разве

$start_cost = (int)$_GET['start_cost'] ?: 0;
и
$start_cost = (int)$_GET['start_cost'];

это не одно и то же?

кстати да 🤪 я чот (int) проигнорил.

M
На сайте с 01.10.2014
Offline
61
#19

но данные почему-то не выводит. и кстати, если в оба поля ввести одинаковые значение, то также ничего не выводит. странно

bupy7
На сайте с 18.03.2014
Offline
30
#20

после

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

вставь

var_dump($result);die();

и покаж.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий