我对编程比较陌生,并且一直在项目组工作,以创建我们的第一个合适的网站。我们有产品和页面,我们希望根据选择的类别显示多个产品。
$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)
多次,这意味着它将基本上对每个产品执行查询。现在我的问题是,这是否真的是可接受的方式,或者我是否应该执行一个查询,并以某种方式从该查询中获取数据(或任何其他替代方案)。
答案 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})";