2013-12-15 5 views
-7

У меня есть только очень простое понимание javascript, поэтому я был бы признателен, если бы вы могли пообщаться со мной.Сценарий для подсчета общего количества продуктов - Opencart

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

Благодарим заблаговременно за ваше время и усилия.

+0

Не знаю с чего начать – tman16

+0

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

+0

Знаете ли вы таблицу, в которой хранятся продукты? Вы знаете sql-запрос? Тогда это очень просто, и вы можете сделать это сами. Хорошего дня :) ! –

ответ

2

Кажется, что вам не нужен javascript вообще. Если вы говорите об OpenCart (как предлагает ваш заголовок), вам необходимо получить доступ к общему количеству продуктов в вашей базе данных (не в самой странице или элементах DOM).

«Профессиональный подход» будет заключаться в том, чтобы расширить вашу модель и файлы контроллеров с помощью правильных методов, , но в случае, если вы пытаетесь избежать этого (на самом деле это не рекомендуется), это то, что вам нужно сделать.

<div> 
<?php 
    $query = $this->db->query("SELECT status FROM " . DB_PREFIX . "product WHERE status='1' "); 
    $products_count = $query->rows ? count($query->rows) : 0; 
    echo "Total products in store: " . $products_count; 
?> 
</div> 

Опять же, так как я большой поклонник структуры MVC, я бы рекомендовал расширить контроллер и модель для обработки всех данных, особенно, если вы собираетесь использовать это в нескольких просмотре файлов. Таким образом, вы будете передавать данные к виду и все, что вам нужно сделать в вашем коде будет:

<div> 
    echo "Total products in store: " . $products_count; 
</div> 

Надеется, что это помогает!

+0

Это именно то, что я искал благодаря! – tman16

+0

Вам не нужно выбирать каждый бит данных только для подсчета строк. Вы можете использовать 'status' вместо' * ', который будет возвращать намного меньше данных и берет гораздо меньше памяти –

+0

Хорошая точка Jay спасибо! Если вам не нужны фактические данные, а только счет, то лучше делать подсчет на стороне mysql. Однако, Джей - пожалуйста, исправьте меня, если я ошибаюсь, но я не уверен, что вы можете использовать ключевое слово status для подсчета только разрешенных строк (некоторые продукты могут быть отключены, и мы, вероятно, не хотим, чтобы они отображались). Вы можете использовать SELECT COUNT (*) FROM ... WHERE status = '1', и это будет быстрее и эффективнее моего первого ответа. – Yani

1

В контроллере

$this->load->model('catalog/product'); 
//loads product model 

$this->data['total_product'] = $this->model_catalog_product->getTotalProducts(); 
// gives the number of product 

В файле шаблона

echo $total_product 

Это может быть самый простой способ отобразить общий продукт, если вы хотите сделать это с помощью функции сценария Затем определите функцию в контроллере и назовите его с помощью json из tpl.

+0

Вы человек! благодаря !! – geekido

Смежные вопросы