Выборка по переменной (метро)

Статус
В этой теме нельзя размещать новые ответы.

Brain

Профессор
Регистрация
28 Мар 2007
Сообщения
165
Реакции
40
Отцы, такой вопрос. Как сделана выборка по метро на главной ? На главной – список саун, у каждой сауны есть поле "Метро: Метро1, Метро2", например "Метро: Савеловская , Дмитровская". Метро1 и Метро2 – ссылки вида, например, , кликая по ней происходит выборка саун по этому метро. Вопрос такой, как сделать такую же выборку?
Создал список названий метро (с названием "metro") создал 2 переменные metro1 и metro2 тип "Список" формат "metro", а вот что прописать в самом шаблоне? :confused:
NetCat 3.1 Corporate
 
это легко делаеться через поиск в массиве srchPat[], как это делать написано в руководстве разработчика ст. 67.. и ничего другого больше не нужно
 
fuck0ff
Тут возникает проблемка. 2 сауны, первая - "Метро: Савеловская , Дмитровская", вторая - "Метро: Менделеевская, Савеловская". В первом случае переменные metro1 = Савеловская, metro2 = Дмитровская, во вротом случае metro1 = Менделеевская, metro2 = Савеловская. А поиск в массиве srchPat[] как я понял может быть только по одной переменной, тоесть если поиск по metro1 со значением "Савеловская", то вторая сауна показываться не должна, или я чегото недосмотрел?
 
Brain, да, если ты создаш два поля, т.е. метро1 и метро2, то искать можно только по одному, или по обоих сразу..

например
/sauny/?srchPat[1]="Савеловская"&srchPat[2]="Дмитровская"

srchPat[1] - это поле метро1
srchPat[2] - это поле метро2

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

а тут некоторые еще возмущаються, вам же легче будет, йоманарод
 
fuck0ff
Да в том то и дело, что руководство почти до дыр затер. Вот смотри выборка по "Петровско-Разумовская". Если посмотреть результат, то значение "Петровско-Разумовская" то в первой переменной, то во второй, тоесть выборка идет сразу под двум переменным. Ведь При запросе /?srchPat[1]="Савеловская" значение второй переменной не учитывается, тоесть если значение "Савеловская" не в метро1, а в метро2, то сауна не показывается.

я вот вообще думаю, через списки ли там все реализовано, впринципе такое можно сделать через логические переменные, но больше 150 переменных это писец кол-во запросов к базе будет
 
а если попробовать для поиска использавать не ?srchPat[1], а listQuery с собственным запросом?
типа".listQuery("SELECT * FROM MessageXX WHERE metro1 = переменная1 || metro2 = переменная2", '$data[данные1] // $data[данные2]...и тд')."


и еще...NetCat 3.1. Руководство разработчика стр. 72
"...Кроме этого, есть возможность модифицировать основной SQL-запрос путем
добавления в оператор SELECT собственного кода...."
 
Brain, да там юзают списки, как делают выборку хз.. как уже говорили, вероято модифицировали запрос

...WHERE (metro1 = 106 || metro2 = 106)...

потом на досуге попробую..
 
таки попробовал..

Кроме того, "Системным настройкам" доступны ассоциативные массивы $current_catalogue, $current_sub, $current_cc, $current_user и все переменные, подаваемые на загружаемую страницу методом GET либо в функции s_list_class().
Система управления сайтами NetCat 3.2. Руководство разработчика - ст. 80 =)

вообщем в поле системные настройки нужно записать:

Код:
if($id) {
 $id = (int)$id;
 $query_where = ($query_where ? " AND " : "")."(a.category = '$id')";
}

category - поле компонента..

у вас получаеться нужно было (a.metro = '$id' || a.metro2 = '$id')

вот так все просто..
 
Сделал так:
в коде поиска
Код:
<select name='sel_metro'
а в системных настройках компонента
Код:
if ( $sel_metro ) {
$sel_metro=intval($sel_metro);
$query_where = " metro1 = '".$sel_metro."' OR metro2 = '".$sel_metro."'";
}
Спасибо, народ, заработало :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху