Выборка &where PdoR
У меня проблема с фильтром
так
&where=`["`TVzena-nds`.`value` >= 2000"] `
или так
&where=`["`TVzena-nds`.`value` >= 2000 AND `TVzena-nds`.`value` <= 2500"]`
РАБОТАЕТ,
но уже так
&where=`["`TVzena-nds`.`value` >= 2000 AND `TVtovar-proiz-seria.`value` = АЛЬФА"]`
или
&where=`["`TVzena-nds`.`value` >= 2000 AND `TVtovar-proiz-seria.`value` = `АЛЬФА`"]`
пишет: Could not process query, error #1054: Unknown column 'Siemens' in 'where clause'
НЕ РАБОТАЕТ.
и наоборот… когда отдельно хочу фильтровать строку, то РАБОТАЕТ такой вариант
&where=`{«tovar-proiz-seria:=»:«АЛЬФА»}`
но с ценой этот вариант
&where=`{«zena-nds:>=»:«2000»}` работает неправильно, фильтрует как строку
Уже перепробовал кучу вариантов… не могу допетрить в чём проблема
Как совместить фильтр по цене(Цифре) + фильтр по производителю(Строке) ???
ПООМООГИИТТЕЕЕ РАЗОБРАТЬСЯ!!! ПЛИИИЗЗЗЗ!!!
так
&where=`["`TVzena-nds`.`value` >= 2000"] `
или так
&where=`["`TVzena-nds`.`value` >= 2000 AND `TVzena-nds`.`value` <= 2500"]`
РАБОТАЕТ,
но уже так
&where=`["`TVzena-nds`.`value` >= 2000 AND `TVtovar-proiz-seria.`value` = АЛЬФА"]`
или
&where=`["`TVzena-nds`.`value` >= 2000 AND `TVtovar-proiz-seria.`value` = `АЛЬФА`"]`
пишет: Could not process query, error #1054: Unknown column 'Siemens' in 'where clause'
НЕ РАБОТАЕТ.
и наоборот… когда отдельно хочу фильтровать строку, то РАБОТАЕТ такой вариант
&where=`{«tovar-proiz-seria:=»:«АЛЬФА»}`
но с ценой этот вариант
&where=`{«zena-nds:>=»:«2000»}` работает неправильно, фильтрует как строку
Уже перепробовал кучу вариантов… не могу допетрить в чём проблема
Как совместить фильтр по цене(Цифре) + фильтр по производителю(Строке) ???
ПООМООГИИТТЕЕЕ РАЗОБРАТЬСЯ!!! ПЛИИИЗЗЗЗ!!!
Комментарии: 8
showlog?
Полный вызов сниппета?
Полный вызов сниппета?
[[!pdoPage?
&tpl=`katalog-tovar-filtr`
&limit=`25`
&maxLimit=`1000`
&pageLimit=`7`
&parents=`51`
&includeTVs=`tovar-proiz-seria,desc,nalichie,tovar-isp-shit,tovar-kol-klapan,tovar-mosh-dvigatel,tovar-razmer,tovar-srok,tovar-tip,tovar-ves,zena-nds,ed-izm,down-tovar-opisanie,img-tovar`
&tvPrefix=``
&sortby=`{ «zena-nds»:«ASC»}`
&where=`[[!filtersi]]`
&showLog=`1`
]]
&tpl=`katalog-tovar-filtr`
&limit=`25`
&maxLimit=`1000`
&pageLimit=`7`
&parents=`51`
&includeTVs=`tovar-proiz-seria,desc,nalichie,tovar-isp-shit,tovar-kol-klapan,tovar-mosh-dvigatel,tovar-razmer,tovar-srok,tovar-tip,tovar-ves,zena-nds,ed-izm,down-tovar-opisanie,img-tovar`
&tvPrefix=``
&sortby=`{ «zena-nds»:«ASC»}`
&where=`[[!filtersi]]`
&showLog=`1`
]]
А так не пробовали?
&where=`{«tovar-proiz-seria:=»:«АЛЬФА», «zena-nds:>=»: 2000}`
&where=`{«tovar-proiz-seria:=»:«АЛЬФА», «zena-nds:>=»: 2000}`
В таком случае ошибка не вылазит, но цены фильтрует не как числа, а как строки
Только тут нужно не сортировать, а добавить в select изменение типа поля
Только вместо 16 вставьте свой id ТВ-шки
&select=`modResource.*, CAST(IFNULL(TVzena-nds.value, 0) AS DECIMAL(13,0)) AS zena-nds`
&leftJoin=> `{
"TVzena-nds":
{"class":"modTemplateVarResource",
"on":"TVzena-nds.contentid = modResource.id AND TVzena-nds.tmplvarid = 16"}
}`
Всё отлично работает!!! Спасибо огромное за помощь!!!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.