循环使用基于过滤器的产品MYSQL

时间:2017-02-09 15:07:35

标签: php mysql pdo web

目前,我有一个系统集,可根据控制面板中设置的过滤器显示数据库中的产品。

它像这样循环:

np.mean(a <=4)

除加载时间外,此方法正常。因为它必须使用搜索项遍历每个过滤器的所有产品,所以所涉及的时间只会随着后端添加的每个过滤器而变得更高。

我的问题:是否有一种较小的方式可以将任何数组的过滤器写入一个mysql语句?像这样:

1. Begin loop
2. Pick Filter
3. Search product database for product matching the filter AND search term
4. Return a table row of products matching these terms
5. End Loop

我需要这个的另一个原因是因为它目前正在重复产品行。虽然我用javascript清楚地隐藏了双打,但保持这样的情况并不是很好。

目前,这是正在使用的代码。如果有人能提出任何关于如何做到这一点的最佳方式的建议,我全都耳朵。

SELECT FROM products Where A line matches one of the array of filters AND search term? 

我编辑过包含一个非常快速的模拟我正在使用的代码。

1 个答案:

答案 0 :(得分:0)

将过滤器保存在数组中。然后使用循环来制作sql stament。像这样:

$query= "SELECT * FROM products ";
$filters= 'Where '; //Sets a varible for fileters.
foreach($filters as $key=$value) //Loop threw each filter
{
    $filters.= $key . '= ' . $value . 'AND ';
}
rtrim('AND '); //Remove extra 'AND' from end of filters string
$query.= $filters;

现在,您必须根据过滤器的存储方式调整代码。并且rtrim()可能需要tweeking。