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