Вставка нескольких заказов с 1 формой - PullRequest
0 голосов
/ 20 мая 2019

Я делаю заявку на ресторан (с php и pdo). Мне нужно вставить заказы. Я перебираю некоторые продукты, которые вы можете заказать, с полем ввода, чтобы вы могли выбрать, сколько из этих продуктов вы хотите заказать. Но я не знаю, как вставить это в несколько записей. так например. Я хочу заказать 1 колу и 1 пепси. для этого нужно создать 2 записи.

Я пытался опубликовать данные, но ничего не произошло

if (isset($_POST["addbestelling"])){
    global $db;
    $gerechtid = htmlspecialchars($_POST["GID"]);
    $aantal = htmlspecialchars($_POST["aantalG"]);

    $sql = "INSERT INTO bestelling(GerechtID, Aantal) VALUES (:gerechtid,:aantal)";
    $stmt = $db->prepare($sql);
    $data = array("gerechtid" => $gerechtid, "aantal" =>$aantal);

    try {
        $stmt->execute($data);
        echo "<script>alert('Succesvol geplaatst!');</script>";
    } 
    catch (PDOException $e) {
        echo $e->getMessage();
    }
}

$voorgerecht = "
SELECT g.*
     , s.Subgerecht 
  FROM gerecht g
  LEFT 
  JOIN subgerecht s
    ON s.GerechtID = g.GerechtID 
 WHERE s.Subgerecht = 'Voorgerecht';
";
foreach($db->query($voorgerecht) as $vg){


<div class="name-price row">

<p class="pr10">Gerecht</p>
<p class="pr10">€Prijs</p>
<?php
<input type="number" class="form-control" name="aantalG" placeholder="Aantal">
<input type="hidden" name="GID" value="<?php echo $vg["GerechtID"];?>"> 
}
?>

<input type="submit" name="addbestelling" class="btn btn-dark" value="Voeg toe">

Таким образом, я заполняю количество продуктов, которые хочу заказать, но ничего не происходит, когда я отправляю его

изображение формы

1 Ответ

0 голосов
/ 20 мая 2019

Вы можете сделать массив "gerecht aantallen".

<input type="number" class="form-control" name="aantalG[<?php echo $vg["GerechtID"];?>]" placeholder="Aantal">

Таким образом, вы получите массив в $_POST['GerechtID'], который вы можете просмотреть. Например:

foreach($_POST['GerechtID'] as $gerechtId => $aantal) {
   echo $gerechtId . ' x ' . $aantal; // save row here.
}

Чтобы вставить несколько значений одновременно с помощью PDO, проверьте: PDO Prepared Вставляет несколько строк в одном запросе

...