Перейти к содержимому


Pioneer

Регистрация: 19 Jun 2013
Offline Активность: Feb 01 2017 10:14 AM
*****

Мои сообщения

В теме: Еще один фильтр. Теперь на AJAX.

11 August 2016 - 11:20 PM

Наверное нужно сделать что-то аналогичное предыдущему случаю ? В этом коде поменять ?

Да.


Не поможете ? Наверное все таки не в этом, а ругается на вот этот кусок :

$row = db_fetch_assoc(db_query("SELECT COUNT(*) AS count
FROM (SELECT COUNT(DISTINCT optionID) AS count
FROM ".PRODUCTS_OPTIONS_SET_TABLE." AS pos
JOIN ".DB_PRFX."products USING(productID)
WHERE enabled=1 AND Price>=$price_from AND Price<=$price_to AND $addonCat$addonStock AND variantID IN (".implode(',',$search).")
GROUP BY productID) AS t

Ошибка
ERROR: 1052:Column 'productID' in group statement is ambiguous
Sql: SELECT COUNT(*) AS count
FROM (SELECT COUNT(DISTINCT optionID) AS count
Выбирает все поля * , наверное и productID тоже , короче запутался :(

В теме: Еще один фильтр. Теперь на AJAX.

11 August 2016 - 03:22 PM

Что вполне естественно. Уберите строку "FROM fses_product_options_set".

Да, так и есть, моя ошибка. Исправил. Ура, характеристики появились. Нот теперь при нажатии на чек бокс, пропадают количества товаров в скобочках и при нажатии на "показать" или "автопоказ", что то там думает и ничего не фильтрует в итоге.
Ошибку показывает такую :
ERROR: 1052:Column 'productID' in group statement is ambiguous
Sql: SELECT COUNT(*) AS count
FROM (SELECT COUNT(DISTINCT optionID) AS count
FROM fses_product_options_set
JOIN fses_products USING(productID)
WHERE enabled=1 AND Price>=0 AND Price<=458.823529412 AND categoryID IN (5) AND variantID IN (29,25)
GROUP BY productID) AS t
WHERE t.count=2
Link: /index.php?do=filter&filter=1

Наверное нужно сделать что-то аналогичное предыдущему случаю ?

В этом коде поменять ?

$data = db_query("SELECT productID
FROM (SELECT productID, COUNT(DISTINCT optionID) AS count
FROM ".DB_PRFX."product_options_set

В теме: Еще один фильтр. Теперь на AJAX.

11 August 2016 - 01:22 PM

Вылечить проблему просто - указать конкретную таблицу, откуда будет браться productID:


$data = db_query("SELECT optionID,variantID, COUNT(pos.productID) AS count
FROM ".PRODUCTS_OPTIONS_SET_TABLE." AS pos
...

т.е. одной из таблиц присваиваем алиас (AS pos), а полю productID указываем, из какой таблицы его брать (pos.productID)


Спасибо за ответ.

Изменил строку в filter.php по Вашим рекомендациям.

Теперь выдает другую ошибку :

ERROR: 1064:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM fses_product_options_set
JOIN fses_products USING(product' at line 3
Sql: SELECT optionID,variantID, COUNT(pos.productID) AS count
FROM fses_product_options_set AS pos
FROM fses_product_options_set
JOIN fses_products USING(productID)
WHERE enabled=1 AND Price>=0 AND Price<=294.12 AND categoryID IN (18)
GROUP BY optionID,variantID
Link: /index.php?do=filter&filter=1

В теме: Еще один фильтр. Теперь на AJAX.

10 August 2016 - 09:16 PM

Убедиться, что это так (или не так) можно в админке в разделе "Статистика ошибок".


Да, какие-то ошибки пишет :
ERROR: 1052:Column 'productID' in field list is ambiguous
Sql: SELECT optionID,variantID, COUNT(productID) AS count
FROM fses_product_options_set
JOIN fses_products USING(productID)
WHERE enabled=1 AND Price>=0 AND Price<=905.76 AND categoryID>1
GROUP BY optionID,variantID
Link: /index.php?do=filter&filter=1
Date: 10.08.16 - 22:10:20
Dump:
array(2) {
["do"]=>
string(6) "filter"
["filter"]=>
string(1) "1"
}
array(4) {
["sort"]=>
string(16) "sort_order, name"
["prdPerPage"]=>
string(2) "18"
["categoryID"]=>
string(1) "1"
["cID"]=>
string(1) "6"
}

А в верхнем окне :
WARNING: in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument
Line: 130
File: /home/braun/public_html/core/cache/%%CB^CBF^CBF3F2B9%%product_brief.tpl.html.php
Link: /index.php?do=filter&filter=2
Date: 10.08.16 - 00:39:23
Dump:
array(2) {
["do"]=>
string(6) "filter"
["filter"]=>
string(1) "2"
}
array(7) {
["filterauto"]=>
string(1) "1"
["sort"]=>
string(16) "sort_order, name"
["prdPerPage"]=>
string(2) "18"
["categoryID"]=>
string(2) "80"
["cID"]=>
string(1) "1"
["price_from"]=>
string(2) "47"
["price_to"]=>
string(2) "77"
}

В теме: Еще один фильтр. Теперь на AJAX.

09 August 2016 - 11:58 PM

Прочитал тему и вдоль и поперек, но как говорится " То ли лыжи не едут..."
Из описания понятно что фильтр работает ТОЛЬКО с вариантами характеристик, прописал именно варианты :
Прикрепленный файл  Доп.Характеристики.jpg   39.46К   14 Количество загрузок:

Но при выводе фильтра их почему-то не показывает, при этом цена, сортировка, автопоказ и т.д все работает:
Прикрепленный файл  фильтр.jpg   31.79К   14 Количество загрузок:

Что это может быть ? Специально выбрал категорию где прописаны варианты характеристик у всех товаров.
Заранее благодарен за наставление на путь истинный ))