【问题标题】:How can in insert multiple rows of data into one table field如何在一个表字段中插入多行数据
【发布时间】:2015-05-10 15:59:48
【问题描述】:

我正在创建一个网站,以便用户可以在线购买市场产品并安排后天取货。购物篮页面可以显示多个产品(产品 ID),我需要获取这些数据并将其插入到我的 Order_Items 表中,但它只插入最后一个产品 ID。

篮子 SQL

if ($_SESSION['Signedin']) {
   $query = "SELECT * FROM BASKET
INNER JOIN PRODUCT
ON BASKET.Product_ID=PRODUCT.Product_ID
INNER JOIN CUSTOMER
ON BASKET.Customer_ID=CUSTOMER.Customer_ID
INNER JOIN STALL
ON PRODUCT.Stall_ID=STALL.Stall_ID
WHERE CUSTOMER.Customer_ID=$_SESSION[CustID]";

  $runquery = oci_parse($connection, $query);

  oci_execute($runquery);   





$_SESSION['total'] = 0;

while($row = oci_fetch_assoc($runquery)) {  

$prodid = $row['PRODUCT_ID'];
$price = $row['PRICE'];
$quantity = $row['QUANTITYBASKET'];
$image = $row['IMAGEID'];
$prodname = $row['NAME'];
$stallname = $row['STALL_NAME'];

$subtotal = ($price * $quantity);

$_SESSION['total'] = $_SESSION['total'] + $subtotal;

echo'   <tbody>
      <tr>';

echo  '<td> <img src="' . $image . '" height="50" width="50"/></td>';
       echo  '<td>' . $prodname . '</td>';
     echo '<td>' . $stallname . '</td>';
        echo  '<td>' . $quantity . '</td>';
        echo '<td>&pound;' . $price . '</td>';    
      echo  '<td>&pound;' . $subtotal . '</td>';
        echo '<td><a href=removeproductsql.php?id='.$prodid.' class="btn btn-success" role="button">Remove</a></td>';             
 echo'     </tr>';
}
 }
 ?>

支付按钮,包括取款时间

 <form method="post">
            <select name="dateslot">
              <option value="1">Monday</option>
              <option value="2">Tuesday</option>
              <option value="3">Wednesday</option>
              <option value="4">Thursday</option>
              <option value="5">Friday</option>
              <option value="6">Saturday</option>
              <option value="7">Sunday</option>
            </select>

        </td>
        <td>
          <form method="post">
            <select name="timeslot">
              <option value="1">10:00-12:00</option>
              <option value="2">12:00-14:00</option>
              <option value="3">14:00-16:00</option>
              <option value="4">16:00-18:00</option>
            </select>

        </td>
        <?php
        echo '<td>&pound;' . $_SESSION['total'] . '</td>';
        ?>
        <td><input type="submit" name="addToOrder" value="Pay" formaction="orderitemssql.php" /></td>
      </form>
      </form> 

添加到订单 SQL

<?php
ob_start(); //to make header work
//include connection
include ('PHP/connection.php');

//has form been submitted?

if (isset($_POST['addToOrder'])){

$total = $_SESSION['total'];
$quantity = $_SESSION['quantity'];
$day = $_POST['dateslot'];
$time = $_POST['timeslot'];
$customerid = $_SESSION['CustID'];
$prodid = $_SESSION['prodid'];




//Insert data
$query = "INSERT INTO ORDER_ITEMS
(Order_Items_ID, TotalPrice, ProductQuantity, Day_ID, Time_ID, Customer_ID, Product_ID)
VALUES
(OrderItems_seq.nextval, '$total', '$quantity', '$day', '$time', '$customerid', '$prodid')";

$runquery = oci_parse($connection,$query);
oci_execute($runquery);
header ('location:homepage.php');
} 
//to check if the if statement is working
{
    echo "Error";
}
ob_flush();
?>

Oracle 中的 ORDER_ITEMS 表

CREATE TABLE ORDER_ITEMS(
    Order_Items_ID number (5) NOT NULL,
    TotalPrice number (5,2) NOT NULL,
    ProductQuantity number (5) NOT NULL,
    Day_ID number (5) references COLLECTION_DAY(Day_ID),
    Time_ID number (5) references COLLECTION_TIME(Time_ID),
    Customer_ID number (5) references CUSTOMER(Customer_ID),
    Product_ID number (5) references PRODUCT(Product_ID),
    Primary Key (Order_Items_ID));

【问题讨论】:

    标签: php sql oracle sql-insert


    【解决方案1】:

    insert 为什么不使用单个语句呢?我不确定确切的处理是什么,但 SQL 看起来像:

    INSERT INTO OrderItems (Order_Ites_ID, TotalPrice, ProductQuantity, Day_ID,
                            Time_ID, Customer_ID, Product_ID)
        SELECT <appropriate field>
        FROM BASKET
        INNER JOIN PRODUCT
        ON BASKET.Product_ID=PRODUCT.Product_ID
        INNER JOIN CUSTOMER
        ON BASKET.Customer_ID=CUSTOMER.Customer_ID
        INNER JOIN STALL
        ON PRODUCT.Stall_ID=STALL.Stall_ID
        WHERE CUSTOMER.Customer_ID=$_SESSION[CustID]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-08
      • 2018-03-20
      • 2023-03-09
      • 1970-01-01
      • 2022-01-23
      • 2013-10-20
      • 1970-01-01
      • 2020-10-13
      相关资源
      最近更新 更多