2016-06-15 5 views
-3

У меня есть проблема с этими петлями foreach, если я в гнездо их вывод неправильный .. В коде ниже: вещи будут добавляться несколько раз в базу данных .. так что мне действительно нужен цикл foreach с 2 условиями, но я не хочу знаете, если это возможно? Мне нужен как продукт, так и количество, добавленные в БД.PHP - множество циклов foreach?

$keys = array_keys($_SESSION['meal1']); 

    foreach ($_SESSION['meal1'] as $quantity) { 

     foreach ($keys as $products) {      

$query1 = sprintf("INSERT INTO `maaltijdproducten`(`meal_id`, `product_id`, `quantity`, `schema_id`) VALUES ('1' ,'$products', '$quantity', '$schemaid')"); 
       $result1 = mysql_query($query1); 
      } 
     } 

Сеанс «meal1», как: продукт является индексом и величиной является значение:

array (size=2) 
    1 => int 1 
    7 => int 6 
+0

вы можете использовать перерыв; добавив один оператор if в ваш цикл foreach. –

+1

Каков ожидаемый результат ...? – deceze

+0

Ожидаемый результат: product_id и количество добавляются в одну строку в базу данных @deceze – Mette

ответ

2

Вам не нужно повторять два раза, если массив такой же.

$keys = array_keys($_SESSION['meal1']); //it contains the keys in an an array 

foreach ($_SESSION['meal1'] as $quantity) { //it iterates the array and the value of each key is in $quantity. 

Я думаю, что вы, вероятно, нужно

foreach ($_SESSION['meal1'] as $current_key => $quantity) { 
//$current_key -> product as you mentioned 
+0

благодарю вас за помощь! – Mette

0

Это, вероятно, то, что вы ищете:

$meals = $_SESSION['meal1'];  

foreach($meals as $quantity => $product) { 
    $query1 = sprintf("INSERT INTO `maaltijdproducten`(`meal_id`, `product_id`, `quantity`, `schema_id`) VALUES ('1' ,'$product', '$quantity', '$schemaid')"); 
      $result1 = mysql_query($query1); 
} 
Смежные вопросы