|
|
10.11.2009, 15:54
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
Задача, конечно, уже баянная: сделать s_list_class с фильтрацией по полю MyField.
Делаю s_list_class(xxx, yyy, "MyField=3"), добавляю в системные настройки $query_where.=" and a.MyField='$MyField'", но получаю от ворот поворот. Использовав $db->vardump, добрался до самых косточек. Вот как выглядел запрос, отрабатывавший в s_list_class:
SELECT
SQL_CALC_FOUND_ROWS a.Name,
a.Description,
a.xxxxxxxx,
<...>
tbl1215.`Название_классификатора_Name` AS tbl1215name,
tbl1215.`Название_классификатора_ID` AS tbl1215id,
<...>
FROM (`MessageXXX` AS a )
LEFT JOIN `Classificator_Название_классификатора` AS tbl1215 ON a.`MyField` = tbl1215.`НазваниеКлассификатора_ID`
LEFT JOIN ......
WHERE 1
AND <...>
AND a.MyField='3'
ORDER BY a.`Priority` DESC, a.`LastUpdated` DESC LIMIT 0,20
)
)
Стало быть, для того, чтобы сделать нормальную фильтрацию, нужно руками достать из базы данных имя классификатора, соответствующего этому полю.
Вопрос: так и надо делать, или существует менее хирургический путь вывести список объектов с их шаблоном вывода, отфильтровав при этом по одному-единственному полю?
|
|
|
11.11.2009, 09:52
|
|
DiGGy
DiGGy

Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Хыиуду писал(а):Делаю s_list_class(xxx, yyy, "MyField=3")
Неверно, надо вот так:
Код:s_list_class(xxx, yyy, "&MyField=3")
Temet nosce...
|
|
|
11.11.2009, 11:12
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
Ошибка все равно оказалась в том, что надо писать
$query_where.="a.MyField=$MyField", а не
$query_where.="and a.MyField=$MyField"
|
|
|
26.11.2009, 19:53
|
|
Гость
Гость
|
Хыиуду писал(а):Ошибка все равно оказалась в том, что надо писать
$query_where.="a.MyField=$MyField", а не
$query_where.="and a.MyField=$MyField"
подскажи плз а MyField у тя поле которое есть в каком то компаненте либо ет поле ты сам создал??
может быть подскажет кто
Код:".s_list_class(135,132,"&naminaciya=1&podnaminaciya=3")."
на странице выводится все, а в админке нет, в чем может быть трабл?
посути если в в разделе 135 забиты какието данные, то они и должны вызыватся через s_list_class в админке тоже
|
|
|
27.11.2009, 09:07
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
Странный вопрос. Естественно, поле внутри компонента (иначе оно не было бы в таблице а), но я его сам создал, когда создавал компонент.
По вопросу - проверьте, нет ли где поблизости какой-нибудь проверки на $admin_mode
|