Форум русской поддержки Joomla!® CMS
10.12.2016, 18:43:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Ошибка при сортировке категории товара по "Цене"

 (Прочитано 1937 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AHTEPO
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 55


« : 04.07.2013, 00:28:30 »

Добре друзья!
Нашёл такую ошибку в 2.0.20: при настройке "Порядок сортировки по умолчанию: Цена" в карточке любого товара вылазит ошибка:
Цитировать
vmError: getNeighborProducts Unknown column 'product_price' in 'order clause' SQL=SELECT `l`.`virtuemart_product_id`, `l`.`product_name` FROM `jm_virtuemart_products` as `p` JOIN `jm_virtuemart_products_ru_ru` as `l` using (`virtuemart_product_id`) JOIN `jm_virtuemart_product_categories` as `pc` using (`virtuemart_product_id`)   LEFT JOIN `jm_virtuemart_product_shoppergroups` as `psgr` on (`psgr`.`virtuemart_product_id`=`l`.`virtuemart_product_id`)   WHERE `virtuemart_category_id` = 16 and `slug` < "название товара" AND ( psgr.`virtuemart_shoppergroup_id`= "2" OR psgr.`virtuemart_shoppergroup_id` IS NULL ) AND p.`published`= 1 ORDER BY product_price DESC LIMIT 0,1

vmError: getNeighborProducts Unknown column 'product_price' in 'order clause' SQL=SELECT `l`.`virtuemart_product_id`, `l`.`product_name` FROM `jm_virtuemart_products` as `p` JOIN `jm_virtuemart_products_ru_ru` as `l` using (`virtuemart_product_id`) JOIN `jm_virtuemart_product_categories` as `pc` using (`virtuemart_product_id`)   LEFT JOIN `jm_virtuemart_product_shoppergroups` as `psgr` on (`psgr`.`virtuemart_product_id`=`l`.`virtuemart_product_id`)   WHERE `virtuemart_category_id` = 16 and `slug` > "название товара" AND ( psgr.`virtuemart_shoppergroup_id`= "2" OR psgr.`virtuemart_shoppergroup_id` IS NULL ) AND p.`published`= 1 ORDER BY product_price ASC LIMIT 0,1

Кто-нить встречал такое?
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #1 : 04.07.2013, 01:04:27 »

В вашем запросе нет столбца "product_price", которрый, насколько я помню, находится в таблице "#__virtuemart_product_prices".
Записан
AHTEPO
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 55


« Ответ #2 : 04.07.2013, 09:22:33 »

И как бороться с этой ошибкой? Нашёл ряд сообщений в Google, она проскальзывает у обновившихся на 2.0.20
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #3 : 04.07.2013, 10:19:35 »

Обновите до 2.0.20b.
Записан
AHTEPO
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 55


« Ответ #4 : 05.07.2013, 21:48:47 »

Именно в ней эта ошибка и вылезла...
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #5 : 05.07.2013, 22:49:58 »

Странно, у меня та же версия и нет вашей проблемы. Специально проверил administrator\components\com_virtuemart\models\product.php, все на месте
стр.385-388
Код
case 'product_price':
//$filters[] = 'p.`virtuemart_product_id` = p.`virtuemart_product_id`';
$orderBy = ' ORDER BY `product_price` ';
$joinPrice = TRUE;
 
стр.462-464
Код
if ($joinPrice == TRUE) {
$joinedTables .= ' LEFT JOIN `#__virtuemart_product_prices` as pp ON p.`virtuemart_product_id` = pp.`virtuemart_product_id` ';
}
 
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1163


желаю вам счастья


« Ответ #6 : 08.07.2015, 14:54:31 »

Добрый день!

Подобная проблема, может уже кто разрешал её.
VirtueMart 3.0.9
Применил сортировку по цене, потом решил открыть карточку товара и получил страницу со следующей ошибкой:
Цитировать
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 'Фукс" на натуральном камне" ORDER BY product_price ASC LI' at line 1 SQL=SELECT p.`virtuemart_product_id`, `l`.`product_name` FROM `ytgb1_virtuemart_products` as p INNER JOIN `ytgb1_virtuemart_products_ru_ru` as l using (`virtuemart_product_id`) LEFT JOIN `ytgb1_virtuemart_product_shoppergroups` as ps ON p.`virtuemart_product_id` = `ps`.`virtuemart_product_id` LEFT JOIN `ytgb1_virtuemart_product_categories` as pc ON p.`virtuemart_product_id` = `pc`.`virtuemart_product_id` LEFT JOIN `ytgb1_virtuemart_product_prices` as pp ON p.`virtuemart_product_id` = pp.`virtuemart_product_id`
WHERE ( `pc`.`virtuemart_category_id` = 2 AND ( `ps`.`virtuemart_shoppergroup_id`= "1" OR `ps`.`virtuemart_shoppergroup_id` IS NULL ) AND p.`published`="1" ) AND p.`virtuemart_product_id`!="4011" AND product_price >= "Статуэтка "Фукс" на натуральном камне" ORDER BY product_price ASC LIMIT 1
как видно выражение product_price >= "Статуэтка "Фукс" совсем не к месту в построенном запросе.
Кто-нибудь сталкивался, почему так происходит?

Чтобы исправить ошибку вы должны открыть \administrator\components\com_virtuemart\models\product.php и в public function getNeighborProducts
перед кодом:
Код:
foreach ($neighbors as &$neighbor) {
вставить код:
Код:
           if($whereorderByName=="product_price")
                foreach($product->allPrices as $key=>$value){
                    if($value['virtuemart_shoppergroup_id'] == Х ) {
                        $orderByValue = $value['product_price'];
                        break;
                    }
                }
где Х - это требуемое значение shoppergroup_id для искомой цены
« Последнее редактирование: 08.07.2015, 17:14:45 от borro » Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 827


Е = mс²


« Ответ #7 : 25.07.2015, 04:39:06 »

Код:
Странно, у меня та же версия и нет вашей проблемы.
А вполне нормально что может и не быть такой ошибки...
Это скорее всего там стоит модуль который переопределяет некоторые методы в модели product...
По отключайте все модули и смотрите на каком вылетит ошибка тот и виноват....

Скорее все либо mod под старую версию или под более новую... (что мало вероятно...)
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet