У меня есть 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....
.......
Я хочу сделать, чтобы напечатать идентификатор продукта 8 и идентификатор 11. Фактически, он получает идентификатор продукта 8 и идентификатор 1. Что не так с моим кодом? Почему у него есть идентификатор продукта 1 не 11? Спасибо.
дополнительный вопрос: почему он должен измениться на "$ value"?
замещать
$STH2->execute(array($value['0']));
в
$STH2->execute(array($value));
Ох, сэр, измените эту строку:
$STH2->execute(array($value['0']));
в
$STH2->execute(array($value));
Вы помещаете в SQL-запрос только первый символ значения ($value[0]
) вместо полного значения.
$STH2->execute(array($value));
Во-вторых, почему вы используете запросы в запросе цикла FOR одного запроса?
SELECT ...
FROM ...
WHERE id IN (8, 11)