2016-06-15 7 views
-3

나는이 foreach 루프에 문제가 있습니다. 출력이 올바르지 않다는 것입니다. 아래 코드에서 : 여러 번 데이터베이스에 추가 될 것입니다. 그래서 실제로 2 개의 조건이있는 foreach 루프가 필요합니다.하지만 그렇지 않습니다. 이것이 가능한지 아십니까? DB에 제품과 수량이 모두 필요합니다.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

; foreach 루프에 if 문을 하나 추가합니다. –

+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); 
} 
당신이 휴식을 사용할 수 있습니다