我有2个字符串:
$data1 = "8,11,";
$data2 = "2,3,";
我这样做:
$stuff = explode(",", $data1, -1);
$amount = explode(",", $data2, -1);
所以像这样的数组:
$stuff have an Array ( [0] => 8 [1] => 11 )
$amount have an Array ( [0] => 2 [1] => 3 )
然后像这样做:
foreach($stuff as $index => $value){
$query= "SELECT * FROM products WHERE id = ?";
$STH2 = $DBH->prepare($query);
$STH2->execute(array($value['0']));
while($Products_all = $STH2->fetch()){
and so on....
.......
我想要做的是打印产品ID 8和ID 11.事实上,它获得了产品ID 8和id 1.我的代码出了什么问题?为什么产品ID 1不是11? 谢谢。
其他问题:为什么必须改为" $ value" ?
答案 0 :(得分:1)
替换
$STH2->execute(array($value['0']));
到
$STH2->execute(array($value));
答案 1 :(得分:0)
您只在SQL查询中添加了值($value[0]
)的第一个字符,而不是完整值。
$STH2->execute(array($value));
第二件事是,为什么在一个查询的FOR循环中使用查询?
SELECT ...
FROM ...
WHERE id IN (8, 11)
答案 2 :(得分:0)
哦,sry改变这一行:
$STH2->execute(array($value['0']));
到
$STH2->execute(array($value));