Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Выборка по двум параметрам

30.09.2015, 17:36
ООО «РУМЕДИА»
RMB
ООО «РУМЕДИА»

Зарегистрирован:
2012-09-10
Сообщений: 24

Доброго времени суток ! у меня netcat 4.6 и есть вызов вот такого рода

Код:
".s_list_class(152,119,"&nc_ctpl=211&type=2&tip=1")."	


где &type и &tip два селекта с двумя опциями, никак не соображу что мне написать чтобы он одновременно выбирал по ним двум, на данный момент у меня вот так
Код:

if ($type) $query_where.=" a.type=$type";
if ($tip) $query_where.=" a.tip=$tip";


ООО «РУМЕДИА»
03.10.2015, 09:57
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

Перед кодом:
Код:
if ($type) $query_where.=" a.type=$type";
if ($tip) $query_where.=" a.tip=$tip";

Добавьте $query_where = "1 = 1";
Чтобы получилось так:

Код:
$query_where = "1 = 1";
if ($type) $query_where.=" a.type=$type";
if ($tip) $query_where.=" a.tip=$tip";


Stark
06.10.2015, 08:59
Долгий Андрей

Зарегистрирован:
2015-09-10
Сообщений: 8

Не совсем так, у вас "AND" упущены.
Можно так:

$query_where = "1";
if ($type) $query_where .= " AND a.type = ".intval($type);
if ($tip) $query_where .= " AND a.tip = ".intval($tip);

Но если делать совсем универсально, то как-то так:
$query_where_arr = array();
if ($type) $query_where_arr[] = "a.type = ".intval($type);
if ($tip) $query_where_arr[] = "a.tip = ".intval($tip);
...
//здесь формируем уже готовый $query_where, когда все условия добавлены
if ( count($query_where_arr) ) $query_where = implode(" AND ", $query_where_arr);

intval для параметров больше для перестраховки нужен, чтобы не упало ничего, если по какой-то причине в них будет строка вместо числа (mysql проругается на сравнение со строкой без кавычек)
11.10.2015, 15:34
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

Цитата:
Не совсем так, у вас "AND" упущены.


$query_where = "1";
if ($type) $query_where .= " AND a.type = ".intval($type);
if ($tip) $query_where .= " AND a.tip = ".intval($tip);


Совершенно верно))
Спасибо за поправку...

Stark
198 196 2015-10-11 15:34:59 14301
Описание проекта