Php 避免循环特定情况下的查询

Php 避免循环特定情况下的查询,php,mysql,sql,loops,paypal,Php,Mysql,Sql,Loops,Paypal,我的处境是,我看不到有可能在for循环中避免SELECT查询,因此我在这里提问 情况是这样的:我正在创建一个电子商务系统,它实现了Paypal购物车系统。用户付费后,IPN响应如下(缩短): 如您所见,有些键表示somethingN。这就是麻烦的开始 我使用num\u cart\u items作为迭代次数,如: for ($i = 1; $i <= $_POST['cart_num_items']; $i++) { // Do something } for($i=1;$i要避免

我的处境是,我看不到有可能在
for
循环中避免
SELECT
查询,因此我在这里提问

情况是这样的:我正在创建一个电子商务系统,它实现了Paypal购物车系统。用户付费后,IPN响应如下(缩短):

如您所见,有些键表示
somethingN
。这就是麻烦的开始

我使用
num\u cart\u items
作为迭代次数,如:

for ($i = 1; $i <= $_POST['cart_num_items']; $i++)
{
    // Do something
}

for($i=1;$i要避免for循环中的查询,必须从ipn响应中收集所有
item_编号
。然后,使用这些
item_编号
生成带有
in
语句的查询。例如:

SELECT * FROM `items` WHERE `item_number` IN ('item_49', 'item_16')

我不擅长PHP,但你不能简单地用SQL进行查询,比如从id=item\u number1或id=item\u number2…或id=item\u numberX的产品中选择item\u price…或id=item\u numberX等等?这至少会给你一个SQL查询,而不是一个庞大的for循环。如果有人买了120个项目呢?没有理由不能为120个项目工作。这太多了比以下更有效:1)打开与DB的连接2)发送非常小的查询3)等待响应4)接收小查询的数据5)关闭连接x120次请给我一个120个购物车项目的演示,我想看看。谢谢您的提醒!这就是你从编程中得到的休息。
SELECT * FROM `items` WHERE `item_number` IN ('item_49', 'item_16')