计算产品总数的脚本
Posted
技术标签:
【中文标题】计算产品总数的脚本【英文标题】:A script to count the total number of products 【发布时间】:2014-01-02 14:39:46 【问题描述】:基本上,我正在寻找一个脚本来计算我商店中的产品总数,然后将这个总数放在一个 div 中。
【问题讨论】:
假设你没有付出任何努力,没有人会帮助你。 你知道存放产品的表吗?你知道sql查询吗?然后它很简单,你可以自己做。祝你有美好的一天:)! 大家对您的建议,我很抱歉缺乏信息,我一直在四处寻找,但我在这方面的知识非常有限。 【参考方案1】:似乎您需要的根本不是 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>
希望这会有所帮助!
【讨论】:
您不需要仅仅为了行数而选择每一位数据。您可以使用status
而不是*
,这将返回更少的数据并占用更少的内存
好点杰,谢谢!如果您不需要实际数据而只需要计数,那么最好在 mysql 端进行计数。但是,Jay - 如果我错了,请纠正我,但我不确定您是否可以使用 status 关键字仅计算启用的行(某些产品可以被禁用,我们可能不希望它们显示)。您可以使用 SELECT COUNT(*) FROM ... WHERE status='1' 这将比我的第一个答案更快、更有效。
不完全正确不 - SELECT COUNT(*)
仍然比简单的 SELECT COUNT(status)
效率低。我实际上不确定使用COUNT
是否比使用PHP 来计算行总数更有效,尽管我认为是的。另外,我在上一条消息中提到的SELECT status
仍然需要WHERE
子句,因此它仍然只会返回具有status=1
的行【参考方案2】:
在控制器中
$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
这可能是显示总产品最简单的方法,如果您想通过脚本函数执行此操作然后在 Controller 中定义一个函数并使用 tpl 中的 json 调用它。
【讨论】:
以上是关于计算产品总数的脚本的主要内容,如果未能解决你的问题,请参考以下文章