|
|
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
Сообщений: 482
|
Перед кодом:
Код: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
Сообщений: 482
|
Цитата:Не совсем так, у вас "AND" упущены.
$query_where = "1";
if ($type) $query_where .= " AND a.type = ".intval($type);
if ($tip) $query_where .= " AND a.tip = ".intval($tip);
Совершенно верно))
Спасибо за поправку...
Stark
|