Я извлекаю все продукты из базы данных и отображаю их с введенным числом с именем вроде: name="product_name[<?php $row['id'];?>]"
При отправке я отправляю массив идентификаторов продуктов и их количество на страницу обработчика, мой вопросКак выбрать соответствующий идентификатор из моей базы данных, а затем отобразить их обратно с их количествами для подтверждения заказа.
order_form.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_name("user");
session_start();
include 'includes/con.inc.php';
?>
<form class="" action="handlers/confirm.order.hd.php" method="POST">
<h5>Meal Deal</h5>
<div class="row">
<?php
$load_deals = $dbh->prepare("SELECT * FROM products WHERE category = :category");
$load_deals->bindValue(':category', 'lunchbox', PDO::PARAM_STR);
if($load_deals->execute()) {
$load_deals->setFetchMode(PDO::FETCH_ASSOC);
}
while($row = $load_deals->fetch()) {
$id = $row['id'];
$name = $row['name'];
$price = $row['price'];
$des = $row['description'];
$img = $row['image'];
?>
<div class="col-md-4 mb-3">
<div class="item-holder" id="<?php echo $id;?>">
<label class=""><b><?php echo $name;?></b> - <?php echo $price;?> AZN <small><?php echo $des; ?></small></label>
<input type="number" name="deals[<?php $row['id'];?>]" class="amount" placeholder="0">
</div>
</div>
<?php } ?>
</div>
<h5>Sandwiches</h5>
<div class="row">
<?php
$load_sandwiches = $dbh->prepare("SELECT * FROM products WHERE category = :category");
$load_sandwiches->bindValue(':category', 'Sandwich', PDO::PARAM_STR);
if($load_sandwiches->execute()) {
$load_sandwiches->setFetchMode(PDO::FETCH_ASSOC);
}
while($row = $load_sandwiches->fetch()) {
$id = $row['id'];
$name = $row['name'];
$price = $row['price'];
$des = $row['description'];
$img = $row['image'];
?>
<div class="col-md-4 mb-3">
<div class="item-holder" id="<?php echo $id;?>">
<label class=""><b><?php echo $name;?></b> - <?php echo $price;?> AZN <small><?php echo $des; ?></small></label>
<input type="number" name="sandwiches[<?php $row['id'];?>]" class="amount" value="0">
</div>
</div>
<?php } ?>
</div>
<h5>Drinks</h5>
<div class="row">
<?php
$load_drinks = $dbh->prepare("SELECT * FROM products WHERE category = :category");
$load_drinks->bindValue(':category', 'Drink', PDO::PARAM_STR);
if($load_drinks->execute()) {
$load_drinks->setFetchMode(PDO::FETCH_ASSOC);
}
while($row = $load_drinks->fetch()) {
$id = $row['id'];
$name = $row['name'];
$price = $row['price'];
$des = $row['description'];
$img = $row['image'];
?>
<div class="col-md-4 mb-3">
<div class="item-holder" id="<?php echo $id;?>">
<img src="imgs/<?php echo $img;?>" class="img-fluid">
<label class=""><b><?php echo $name;?></b> - <?php echo $price;?> AZN <small><?php echo $des; ?></small></label>
<input type="number" name="drinks[<?php $row['id'];?>]" class="amount" value="0">
</div>
</div>
<?php } ?>
</div>
<button class="btn btn-primary mx-auto w-50 mb-3 d-block" type="submit"> confirm order</button>
</form>
verify.order.hd.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_name("goodfooduser");
session_start();
include '../includes/con.inc.php';
$deals = $_POST['deals'];
$sandwiches = $_POST['sandwiches'];
$drinks = $_POST['drinks'];
$id_list = array_merge($deals , $sandwiches , $drinks);
$split_list = implode(',', $id_list);
$get_product = $dbh->prepare("SELECT * FROM products WHERE id = :id ");
$get_product->bindValue(':id', $split_list);
if($get_product->execute()) {
$get_product->setFetchMode(PDO::FETCH_ASSOC);
}
while($row = $get_product->fetch()) {
$product_id = $row['id'];
$product_name = $row['name'];
$output = array(
'id' => $product_id,
'item' => $product_name,
'amount' => $value,
);
print_r($output);
}
?>