Php 一个查询而不是多个查询

Php 一个查询而不是多个查询,php,mysql,Php,Mysql,我目前正在运行多个mysql查询,但我只想运行一个并循环它。我该如何改进这一点 $query = mysql_query("SELECT productid, code, size, quantity, sizechart, rprice, price, weight FROM inventory WHERE code = '$productcode1'"); while ($rows1 = mysql_fetch_array($query)) { $productids1

我目前正在运行多个mysql查询,但我只想运行一个并循环它。我该如何改进这一点

 $query = mysql_query("SELECT productid, code, size, quantity, sizechart, rprice, price, weight FROM inventory WHERE code = '$productcode1'"); 
 while ($rows1 = mysql_fetch_array($query)) 
 { 
     $productids1 = $rows1['productid']; 
     $codes1 = $rows1['code']; 
     $sizes1 = ucwords($rows1['size']); 
     $quantitys1 = $rows1['quantity']; 
     $sizechart = $rows1['sizechart']; 
     $rprice = $rows1['rprice']; 
     $sprice = $rows1['price']; 
     $dweight = $rows1['weight']; 
 } 

然后,每个查询都会执行相同的操作,但$productcode2和$productcode3等除外。

。。。WHERE code IN(“$productcode1”、“$productcode2”、…)

将“WHERE code=”$prouctcode1“”更改为“WHERE code IN(…)”

将使用一个解决方案

基于PHP参考的快速、未经测试且肮脏的示例:

$stmt = $dbh->prepare("SELECT productid, code, size, quantity, sizechart, rprice, price, weight FROM inventory WHERE code = :code");
$stmt->bindParam(':code', $code);

foreach ($productCodes as $code) {
  $stmt->execute();
  $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
  // Do something with the results
}

啊,完全误解了这个问题。如果你真的想以更高效的方式运行多个查询,那么试试这个方法。通过使用where-in,我将如何获取与每个productcode匹配的每一行的结果?就像上面的例子一样。第1排、第2排等等?我不确定我是否理解。您已经有了一个while($rows1=mysql\u fetch\u array($query))循环,它将遍历每一行。在中使用where..时,查询将返回与列表中的任何productcodes匹配的行