嘿,我正在创建一个电子商店并显示类别树和所有产品及其多种价格变化,我制作了 150 多个 mysql_query("SELECT ...");
在一页上查询。 (如果我计算“while”循环)。
是不是太多了,如果是的话,会有什么负面影响吗? (ofc。加载数据需要更长的时间..)
另外,我是否可以在不这样做的情况下以任何方式实现这段代码的效果?
$result2 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
$result3 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
$result4 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
$result5 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
while( $row2 = mysql_fetch_array( $result2 )) { }
while( $row3 = mysql_fetch_array( $result2 )) { }
while( $row4 = mysql_fetch_array( $result2 )) { }
while( $row5 = mysql_fetch_array( $result2 )) { }
谢谢,迈克。
最佳答案
减少运行查询的数量通常是个好主意。在这种情况下,您可以在单个查询中选择所有产品的行,例如:
SELECT * FROM ceny WHERE produkt_id IN (?, ?, ?, ...) ORDER BY gramaz
然后您将有一个循环遍历结果并填充适当的变量:
$ceny = array()
while ($row = mysql_fetch_array($result)) {
$id = $row['produkt_id'];
$ceny[$id][] = $row;
}
现在 $ceny[$produkt_id]
包含该产品的 ceny
行列表,按 gramaz
排序。
关于PHP - 太多 mysql_query ("SELECT .. ") ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1516922/