使用foreach循环将值插入数据库

时间:2017-04-18 12:22:16

标签: php

我在使用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.我不确定这里的错误是什么。请帮我看看我的代码出了什么问题。谢谢你的帮助

1 个答案:

答案 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;
       }