Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помогите немного переделать модуль


Recommended Posts

Здравствуйте!

Есть модуль Popular Products, который выводит самые просматриваемые товары по значению p.viewed

Хочу переделать этот модуль для вывода самых комментируемых товаров (т.е. у которых самое большое к-во отзывов).

В контроллере есть такой запрос, который я так понимаю отвечает за выборку самых просматриваемых товаров

$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.viewed DESC LIMIT " . (int)$setting['limit']);

Если я правильно понимаю надо заменить p.viewed на что-то другое, но не знаю на что в таблице product вроде нет такой информации.

Помогите разобраться! С меня пиво ;)

Надіслати
Поділитися на інших сайтах


23 минуты назад, BogdanUbi сказал:

Помогите разобраться! С меня пиво ;)

Отзывы в табличке _review. Вам нужно проверить что в таблице продукт товары включены и в продукт_то_стор выбран нужный магазин (как это в вашем примере сделано), а отсорторовать их не по viewed, а по количеству строк с текущим продукт_ид в _review.

Пива сегодня не хочу, так что сам запрос вам какой нибудь другой любитель пива подскажет, если не справитесь самостоятельно)) 

Надіслати
Поділитися на інших сайтах

25 минут назад, iglin сказал:

Пива сегодня не хочу, так что сам запрос вам какой нибудь другой любитель пива подскажет, если не справитесь самостоятельно)) 

А мороженка? ))))

Надіслати
Поділитися на інших сайтах


10 минут назад, BogdanUbi сказал:

А мороженка? ))))

Мне даже раскладку клавиатуры переключать лениво, выж видели в каком формате я алгоритм расписал)))

К тому же вон уже добрый человек какой то нашёлся) Правда странно почему помогать в личку ушел, а не сюда)

Надіслати
Поділитися на інших сайтах

Прежде чем напиисать как, хотел протестировать у него в базе, в своей протестил. если еще кому понадобится

 

$query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.viewed DESC LIMIT " . (int)$setting['limit']);

заменить на

$query = $this->db->query("SELECT p.product_id, (SELECT COUNT(*) FROM " . DB_PREFIX . "review WHERE " . DB_PREFIX . "review.product_id=p.product_id) AS rcount FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY rcount DESC LIMIT " . (int)$setting['limit']);

 

 

  • +1 2
Надіслати
Поділитися на інших сайтах



то есть добавили подсчет комментов


, (SELECT COUNT(*) FROM " . DB_PREFIX . "review WHERE " . DB_PREFIX . "review.product_id=p.product_id) AS rcount

 

и потом сортировка по новому полю, здесь я его назвал rcount

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.