Php 使用Ajax在过滤器中显示结果数量的最佳方法

Php 使用Ajax在过滤器中显示结果数量的最佳方法,php,jquery,mysql,sql,ajax,Php,Jquery,Mysql,Sql,Ajax,首先,快速解释一下我目前的情况: 我的网页包含一个过滤器列表(大约40个,分类)和400多个产品列表 我使用Ajax获得产品列表。默认情况下会显示20种产品,但当您滚动到底部时,会添加更多产品。用户可以通过单击所需选项筛选结果。它就像一个简化的程序。唯一的区别是,当我点击一个过滤器时,我不会重新加载页面,而是使用Ajax来获取我的产品 现在,易趣在每个过滤选项旁边都有这些数字,它显示了如果您单击该选项将获得的结果数量。我的问题是,显示这些数字的最佳方式是什么? 我的方法是为每个过滤器选项运行sq

首先,快速解释一下我目前的情况:

我的网页包含一个过滤器列表(大约40个,分类)和400多个产品列表

我使用Ajax获得产品列表。默认情况下会显示20种产品,但当您滚动到底部时,会添加更多产品。用户可以通过单击所需选项筛选结果。它就像一个简化的程序。唯一的区别是,当我点击一个过滤器时,我不会重新加载页面,而是使用Ajax来获取我的产品

现在,易趣在每个过滤选项旁边都有这些数字,它显示了如果您单击该选项将获得的结果数量。我的问题是,显示这些数字的最佳方式是什么?


我的方法是为每个过滤器选项运行sql查询(
从sometable中选择COUNT(id),其中filter='something'
)。然而,这意味着我必须在加载时运行大约40个查询,并且每次用户单击一个选项时(使用Ajax)。这似乎是服务器负载过重,还是我错了?

我使用第一种方法,但现在我使用
UNION
查询来获取所有计数。这样,我只需对每个过滤器运行1个查询,而不是1个查询。

如果您已经在使用Ajax,我假设您使用Json,为什么不使用本机javascript进行过滤和计数?然后使用.length?计算结果,目前我使用Ajax调用PHP脚本,它返回我的产品。加载时加载20个产品(sql查询:
限制0,20
)。您建议我加载所有加载的产品,将它们放在一个数组中,并使用javascript进行过滤?注:是的,我很好地使用了jsonAh,如果您想在SQL中计算可用产品的数量,您需要按照您的建议,以非常有效的方式执行。提高效率的唯一方法是通过存储过程。为什么不在页面加载时进行一次额外的ajax调用,以获取每个过滤器的总量并将其保存在变量/对象中?然后,您可以进行其他javascript调用以获得20个产品。