我在使用foreach循环将值插入数据库时遇到问题。插入的值为0,只插入一行。 以下是我的输入代码。
<td bgcolor="#FFFFFF"><input id="id" name="pro_id[]" type="text"></td>
<td bgcolor="#FFFFFF"><input id="name" name="pro_name[]" type="text"></td>
<td bgcolor="#FFFFFF"><input id="quan" name="pro_quan[]" type="text"></td>
以下是我的插入代码..
if (isset($_POST['Submit'])) {
$username = $_SESSION['admin_id'];
foreach ($_SESSION["products"] as $item)
{
$ids = $item["pro_id"];
$names = $item["pro_name"];
$quans = $item["pro_quan"];
}
$query = "INSERT INTO product(username, pro_id, pro_name, pro_quan) VALUES ('$username', '$ids', '$names', '$quans')";
$result = mysqli_query($con, $query);
if($result)
{
header("Location:delete.php");
}
else
{
mysqli_error($con);
}
}
插入的值只有0.我不确定这里的错误是什么。请帮我看看我的代码出了什么问题。谢谢你的帮助
答案 0 :(得分:1)
关于会议开始的好地方@JayBlanchard。 在继续循环之前,您必须检查产品是否是会话数组
#start up session
if(!isset($_SESSION)){
session_start();
}
#for debugging purposes. Comment the line below when done.
var_dump($_SESSION['products']);
try{
if (isset($_POST['Submit'])) {
$username = $_SESSION['admin_id'];
#verify that the product array in session is not empty
if(!empty($_SESSION['products']) && count($_SESSION['products']) > 0){
foreach ($_SESSION["products"] as $item)
{
$ids = $item["pro_id"];
$names = $item["pro_name"];
$quans = $item["pro_quan"];
}else{
throw new Exception('no products for this session');
}
}
$query = "INSERT INTO product(username, pro_id, pro_name, pro_quan) VALUES ('$username', '$ids', '$names', '$quans')";
$result = mysqli_query($con, $query);
if($result)
{
header("Location:delete.php");
}
else
{
mysqli_error($con);
}
}
}catch(Exception $ex){
echo $ex->getMessage();
exit;
}