我有一个订购表单,它有一个html选择和一个数字输入。因此用户选择该项目并输入他们想要的项目数量,这些数据将作为数组发送到手柄页面。$_POST['item']
是我想从数据库中选择产品信息的ID数组。$amount = $_POST['amount']
只是每个项目的数量的数组。
我所要做的就是在表格中显示订单项目和金额,以便他们确认订单。
我遇到了很多这样的错误: Illegal string offset
handle.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';
$item = $_POST['item'];
$amount = $_POST['amount'];
$note = $_POST['note'];
$i = 0;
$new_arry = array(
'item' => $item,
'amount' => $amount,
);
$new = array_combine($item, $amount);
$each = implode(',',$new);
$stmt = $dbh->query('SELECT *
FROM `products`
WHERE `id` IN (' . $each . ')');
<table class="table">
<thead>
<tr>
<th scope="col">Item</th>
<th scope="col">Quantity</th>
<th scope="col">Price</th>
</tr>
</thead>
<tbody>
<?php
foreach ($amount as $key) {
$key = array();
foreach ($stmt->fetch(PDO::FETCH_ASSOC) as $row) {
$product_name = $row['name'];
$product_price = $row['price'];
?>
<tr>
<td><?php echo $product_name;?></td>
<td><?php echo $key;?></td>
<td><?php echo $product_price;?></td>
</tr>
<?php }
}?>
</tbody>
</table>
发布于 2018-06-19 17:35:05
我不确定你想要做什么,但你正在重新分配
$key = array() ;
紧随你的
foreach ($amount as $key)
这是造成你的
<td><?php echo $key;?></td>
尝试回显数组,因为你覆盖了由foreach分配的$ key的值。
https://stackoverflow.com/questions/-100005431
复制相似问题