2016-06-24 3 views
0

Когда я перехожу через переменные формы Риса на конец php. все работает хорошо.Петля через переменные ввода формы в php

<input class="rice" type="text" name="rice[]" > 
<input class="beans" type="text" name="beans[]" > 
<input class="price" type="text" name="price[]" > 

// pdo connection 
foreach($_POST['rice'] as $index => $value) { 
$statement= $db->prepare('INSERT INTO product(rice)values(:rice)'); 

$statement->execute(array(':rice' => $value)); 

} 

как теперь пройдёмся по фасоль и цена, а , а затем вставьте три изделия, рис, бобы и цены в базу данных.

// pdo connection 
foreach($_POST['rice'] as $index => $value) { 
$statement= $db->prepare('INSERT INTO product(rice,beans,price)values(:rice,:beans,:price)'); 

$statement->execute(array(':rice' => $value,':beans'=>$value2,':price'=>$value3)); 

} 
+0

, что будет означать, вставив их в разные строки в базе данных. и я не хочу этого – nackolysis

+0

Любые причины, по которым вы передаете их в виде массивов в форме? Почему не просто 'name =" rice ">' ... 'name =" beans ">' ... 'name =" price ">'? Тогда ваш запрос очень прост. – Marcus

ответ

0

Вы могли цикл через них, как это:

// Make sure we have same amount of everything 
$riceTotal = count($_POST['rice']); 
if($riceTotal == count($_POST['beans']) && $riceTotal == count($_POST['price']){ 
    foreach($_POST['rice'] as $key => $value){ 
     $statement = $db->prepare('INSERT INTO product(rice, beans, price) VALUES(:rice, :beans, :price)'); 

     $statement->execute(array(':rice' => $value, ':beans' => $_POST['beans'][$key], ':price' => $_POST['price'][$key])); 
    } 
} 
0

Попробуйте что-то вроде этого:

$arrayRBP = array('rice','beans','price'); 
foreach($arrayRBP as $data) { 
    foreach($postArray as $value) { 
     var_dump(${$value}[$data]); 
    } 
} 
Смежные вопросы