Как показать всю информацию о продукте в модуле opencart?

Я новичок в opencart, и я создал модуль, подобный последнему модулю в opencart, но разница заключается только в том, что последний модуль показывает последний продукт, а мой модуль предназначен для всех продуктов и показывает продукт случайным образом. этот мой модуль работает нормально ... но возникает проблема с отображением фактического рейтинга для каждого продукта ... Теперь я хочу добавить систему рейтинга в свой модуль. Поэтому я хочу знать, что whta должен быть правильным запросом mysql для получения всей информации о продукте, такой как имя, описание, обзоры, рейтинги, product_id и т. д.


person Neeraj    schedule 11.02.2013    source источник


Ответы (1)


вы не показали свой подход, так что это просто общие указатели

сначала вы загружаете модель product.php в файл вашего контроллера $this->load->model('catalog/product');

затем вы решаете, какие будут ваши фильтры при вызове getProducts, если вы не дадите никаких фильтров, он вернет все продукты в базе данных, скажем, вы решите не использовать фильтры, а затем просто передайте пустой массив данных (или вообще ничего не передавайте )

$data = array();

затем вы вызываете функцию

    $results = $this->model_catalog_product->getProducts($data); //or without $data

теперь вы можете сделать что-то вроде

foreach ($results as $result) {
$this->data['products'][] = array(
                    'product_id'  => $result['product_id'],
                    'name'        => $result['name'],
                    'rating'      => $result['rating'],

                );

теперь вы можете использовать это в своем файле tpl, например

<?php foreach ($products as $product) { ?>
some code here
<?php echo $product['rating']; ?>
<?php } ?>

это общий способ, который вы должны использовать, и он также прост, если вы знаете, как функция getProducts извлекает данные из базы данных и возвращает результат, см. функцию getProducts в catalog/model/catalog/product.php.

person Chetan Paliwal    schedule 11.02.2013
comment
Спасибо за ваш ценный ответ... но вот мой код для базы данных в разделе model->module->my_module.php и код - person Neeraj; 12.02.2013
comment
$query = выберите p.product_id, p.image,p.model, p.price, p.sort_order, p.status, p.width, p.height, p.weight_class_id, p.weight, p.quantity, p. tax_class_id, pd.product_id, pd.language_id, pd.name, pd.description, pd.meta_description, pd.meta_keyword, r.rating, r.product_id FROM . БД_ПРЕФИКС . произведение р, . БД_ПРЕФИКС . product_description pd, . БД_ПРЕФИКС . просмотреть r, где pd.product_id = p.product_id заказать по RAND() LIMIT . $значение . ; это мой код, но когда я использую этот код, он иногда не показывает продукт, а иногда выдает ошибку. - person Neeraj; 12.02.2013
comment
@Neeraj используйте это (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r WHERE r.product_id = p.product_id AND r.status = '1' GROUP BY r.product_id) AS rating вместо r.rating - person Chetan Paliwal; 12.02.2013