взорвать и затем foreach данные не то же самое (ошибка php?)

0

У меня есть 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"?

Теги:
arrays
explode

3 ответа

1

замещать

 $STH2->execute(array($value['0']));

в

 $STH2->execute(array($value));
0

Ох, сэр, измените эту строку:

$STH2->execute(array($value['0']));

в

$STH2->execute(array($value));
0

Вы помещаете в SQL-запрос только первый символ значения ($value[0]) вместо полного значения.

$STH2->execute(array($value));

Во-вторых, почему вы используете запросы в запросе цикла FOR одного запроса?

SELECT ...
FROM ...
WHERE id IN (8, 11)
  • 0
    Потому что я хочу использовать оба массива (вещи и количество), используя «foreach».
  • 0
    Хорошо, нет проблем. С 3 запросами проблем нет, с сотнями будет хуже и медленнее. Решение в моем ответе, удалите [0]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню