使用mysql执行许多查询是否可以,或者我应该优化?

时间:2016-02-24 23:30:36

标签: php mysql oop

我对编程比较陌生,并且一直在项目组工作,以创建我们的第一个合适的网站。我们有产品和页面,我们希望根据选择的类别显示多个产品。

$productlist = new ProductList($DB_con, htmlspecialchars($_POST['categoryID'])); 
$productids = $productlist->getids();
$product = new Product($DB_con);
foreach ($productids as $id) {
    $product->read($id);
    echo $product->productname
}

现在这只是我所谈论的一个基本示例,但基本上foreach循环将遍历read($id)多次,这意味着它将基本上对每个产品执行查询。现在我的问题是,这是否真的是可接受的方式,或者我是否应该执行一个查询,并以某种方式从该查询中获取数据(或任何其他替代方案)。

1 个答案:

答案 0 :(得分:0)

这可能是SQL WHERE IN的工作。如果你有一组ID,你可以简单地运行:

SELECT * FROM products WHERE id IN (1, 2, 3, 4, 5, n...)

您可以使用以下内容生成数字:

$ids = implode(", ", $productids);

$sql = "SELECT * FROM products WHERE id IN ({$ids})";