php - foreach 循环结果插入数据库

标签 php html mysql foreach insert

我有三个不同的 div,其中包含结账信息。

  1. 送货信息
  2. 账单信息
  3. 订单确认

发货信息和账单信息是通过客户手动输入该信息来获取的,但订单确认信息(包含他们订购的商品、数量以及与该订单相关的信息)位于此处。该信息是从我现有的 foreach 循环中获取的,该循环根据产品 ID 显示信息。

我试图弄清楚如何将 foreach 循环中显示的字符串INSERT 插入到我的数据库中。我有一个订单报告页面,我想显示订购的内容。

对于运输信息,我会验证它,然后将我的查询与该信息一起发送。像这样...

<?php
if(Input::exists()) {
    $validate = new Validate();
    $validation = $validate->check($_POST, array(
        'fullname' => array(
            'required' => true,
            'min' => 2,
            'max' => 50
        )

if($validation->passed()) {
        if(isset($_POST['create'])){ 
            $fullname = trim( $_POST['customer_name'] );
  ?>

<div class="field">
     <label class="paddingleft" for="fullname">Full Name</label>
     <div class="center"><input type="text"  class="biginputbarinline" name="fullname" value="<?php echo escape(Input::get('firstname')); ?>" required></div>
</div>

我真正困惑的部分是如何插入此 foreach 循环显示的实际字符串。如果我的 foreach 循环的结果是:

2个球

4 鞋。

我希望该信息与我的查询一起发送。

这就是我现在的订单确认部分的方式..

<div class="checkoutconfirmationcontainer">
<?php foreach($_SESSION['shopping_cart'] as $id => $product) {
      $product_id = $product['product_id'];
?>
      <span class="tealmedium"><?php echo $product['quantity'] . " - "  . $products[$product_id]['name'] . $message; ?></span><br><br><br>
           <div class="floatleft"><div class="smallerimgcontainer">
           <?php
           $result = mysqli_query($con,"SELECT * FROM products");
           if($row = mysqli_fetch_array($result)) {
                $products[$row['product_id']] = $row;
                if($row['image'] == ""){
                     echo "<img class='sizedimg' src='/productpics/coming_soon.png' alt='Coming Soon'>";
                } else {
                     echo "<img class='sizedimg' src='/productpics/".$row['img']."' alt='Product Picture'>";
                }
                echo "<br><br><br><br>";
           }
           ?>
           </div></div>
           <div class="checkoutitemsummary">
           <?php echo "<a href='./viewProduct.php?view_product=$id'>" . $product['name'];?><?php echo $products[$product_id]['name']; ?> </a>
                <p><span class="redprice"><?php echo '$' . $products[$product_id]['price'] . "<br />"; }?></span></p>
           </div>

如何将 foreach 循环的结果通过查询插入到数据库中?

购物车

<tr>
                                <th class="cartth">Name</th>
                                <th class="cartth">Price</th>
                                <th class="cartth">Category</th>
                                <th class="cartth">Quantity</th>
                            </tr>
<?php                               
                        $base_price = 0;
                        foreach($_SESSION['shopping_cart'] as $id => $product) {
                                    $product_id = $product['product_id'];
                                    $base_price += $products[$product_id]['price'] * $product['quantity'];
                                    $shipping_price += $products[$product_id]['shippingprice'] * $product['quantity'];
?>
                                <tr>
                                        <td class="carttd"><?php echo "<a href='./viewProduct.php?view_product=$id'>" . $product['name'];?><?php echo $products[$product_id]['name']; ?> </a>
                                        </td>
                                        <td class="carttd"><?php echo '$' . $products[$product_id]['price']; ?></td> 
                                        <td class="carttd"><?php echo $products[$product_id]['category']; ?></td>
                                        <td class="carttd">
                                        <?php echo "<input type='text' name='quantity[$product_id]'  value='" . $product['quantity'] . "' />"; ?> </td>                                         
                                </tr>
<?php
                                }

产生我的 div 转换的 Javascript/Jquery:

$('.checkoutmenu>li').on('click',function(e){
    $('.checkoutprocess>.'+ e.target.classList[0]).show().siblings().hide();
});


<script>                    
$('.paymentinfocontainer').hide();
$('.confirmationinfocontainer').hide();
</script>
<script>
$('#button2').click(function () {
    $(".checkoutprocess > div").hide();
    $('.paymentinfocontainer').show("slow");
});
</script>
<script>
$('#button3 ').click(function () {
    $(".checkoutprocess > div").hide();
    $('.confirmationinfocontainer').show("slow");
});
</script>

<script>
/*
$('#button1').click(function () {
    $(".checkoutprocess > div").hide();
    $('.shippinginfocontainer').show("slow");
});
</script>
<script>
$('#button2 ').click(function () {
    $(".checkoutprocess > div").hide();
    $('.paymentinfocontainer').show("slow");
});
</script>
<script>
$('#button3 ').click(function () {
    $(".checkoutprocess > div").hide();
    $('.confirmationinfocontainer').show("slow");
});
*/
</script>

最佳答案

好的,当我点击“3.订单确认”时,我得到了以下 HTML:

<div class="confirmationinfocontainer" style="display: block;">
    <span class="summarytitle"><p>Order Confirmation</p></span>
    <br>
    <div class="floatrightinline">
        <div class="confirmshippinginfo">
            <p>Shipping to:</p>
            <p></p>
            <p></p>
            <p></p>
            <p></p>
        </div>
    </div>
    <div class="checkoutconfirmationcontainer">
        <div name="product_id"></div>
        <span class="tealmedium">1 - Lakers Hat</span>
        <br>
        <br>
        <br>
        <div class="floatleft">
            <div class="smallerimgcontainer">
                <img alt="Coming Soon" src="/productpics/coming_soon.png" class="sizedimg">
                <br>
                <br>
                <br>
                <br>
            </div>
        </div>
        <div class="checkoutitemsummary">
            <a href="./viewProduct.php?view_product=11">Lakers Hat </a>
            <p><span class="redprice">$25<br></span></p>
        </div>
        <input type="hidden" value="405bb6b2b562b4f00dac620d3f68620f" name="token">
        <input type="submit" value="Place Your Order" class="widebutton">
        <br>
    </div>
</div>

所以我发现您已经在使用隐藏字段了。因此,当用户单击“下订单”按钮时,您希望传递详细信息。您只需通过隐藏字段将这些详细信息添加回表单即可。就像这样:

<div class="checkoutconfirmationcontainer">
<?php
foreach($_SESSION['shopping_cart'] as $id => $product) {
     $product_id = $product['product_id'];
?>
     <input type="hidden" name="product_quantity[<?php echo $id; ?>]" value="<?php echo $product['quantity']; ?>" />
     <span class="tealmedium"><?php echo $product['quantity'] . " - "  . $products[$product_id]['name'] . $message; ?></span><br><br><br>
     <div class="floatleft"><div class="smallerimgcontainer">
     <?php
     $result = mysqli_query($con,"SELECT * FROM products");
     if($row = mysqli_fetch_array($result)) {
          $products[$row['product_id']] = $row;
          if($row['image'] == ""){
               echo "<img class='sizedimg' src='/productpics/coming_soon.png' alt='Coming Soon'>";
          } else {
               echo "<img class='sizedimg' src='/productpics/".$row['img']."' alt='Product Picture'>";
          }
          echo "<br><br><br><br>";
     }
     ?>
     </div></div>
     <div class="checkoutitemsummary">
     <?php echo "<a href='./viewProduct.php?view_product=$id'>{$product['name']} {$products[$product_id]['name']}</a>"; ?>
          <p><span class="redprice"><?php echo '${$products[$product_id]['price']}<br />"; }?></span></p>
     </div>
     <input type="hidden" name="token" value="405bb6b2b562b4f00dac620d3f68620f">
     <input class="widebutton" type="submit" value="Place Your Order">
     <br />
</div>

看看这个,我没有看到 <form>为了这。所以我怀疑 JQuery 正在其他地方处理这个问题。因此,如果您的 JQuery 或应用程序现在没有要查找的内容,或者没有连接到该隐藏字段,那么我的修复可能不会真正被阅读。如果这是您正在使用的框架或您正在修改的目录,请检查它们的支持。我想说你还有很多工作要做。

关于php - foreach 循环结果插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30171056/

相关文章:

mysql - Sequelize : Check if table exist and empty

php - 使用 Laravel 4 将数据从旧表迁移到新表

php - 将选中的项目从 CheckedListBox 转换为字符串,然后将其存储到 MySQL 数据库

html - 填满浏览器窗口的 map 和小部件

html - 链接在 480px 后停止工作

mysql - mysql中如何对不同子表求和?

PHP如何解析pkcs7签名blob?

php - 每天用 PHP 重置 MySQL 值

javascript - 自动拖放文件上传

mysql - 如果第二个表满足要求,则从多个表中选择数据