在Update MySql,PHP上将值从一个表插入另一个表

时间:2013-08-13 17:56:19

标签: php mysql

我想知道是否有办法从表中的列中获取一个值并将其添加到另一个表中的列中。

场景:我有一张桌子(Shopping_Cart)。它将我的所有客户购物车项目存储在CustomerIDPIDPriceStatus列中(状态可以是“IN_CART”,表示已添加并且“OPEN” “表示已付款并准备加工和运输”。然后我有一张桌子(产品)。它将产品信息存储在PID列,价格,权重列中。当我的顾客在购物车中放置物品时,我没有记录价格。价格可以每天变化,所以如果他们今天添加一些东西,当他们明天回来时,价格可能会在他们的购物车中增加或减少。当我的客户退房并确认付款时,我正试图在Products(产品)表中获取Products.PID = Shopping_Cart.PID的价格,然后将该价格应用于Shopping_Cart.Price以锁定自客户以来的最终价格已经付了钱。有任何想法吗?我把它设置为将客户购物车的商品更改为“打开”,但是我让我的脚本从一个表中获取值并将其应用到另一个表时有点迷失。下面是我的PHP脚本,用于将行从“IN_CART”更改为“OPEN”。

if($The_Function=="CLOSE_LINES"){

    $cart_close_session_id = $_GET['close_session_id'];

    $response = array();


    require_once __DIR__ . '/db_connect.php';

    //connect to my db
    $db = new DB_CONNECT();

    $result = mysql_query("UPDATE shopping_cart SET Status = 'OPEN' WHERE SessionID LIKE '$cart_close_session_id' AND Status LIKE 'IN_CART'");

    if ($result) {
        $response["close_success"] = 1;

//GRAB PRICE FROM "PRODUCTS TABLE" AND UPDATE SHOPPING_CART 

    }else{
        $response["close_success"] = 0;
    }
    echo json_encode($response);
}

2 个答案:

答案 0 :(得分:1)

假设您有一个* shopping_cart *表格,其中包含价格 product_id 列,您可以使用价格更新产品表,如下所示:

UPDATE shopping_cart SET price = 
    (SELECT price FROM products WHERE id = shopping_cart.product_id)

答案 1 :(得分:0)

您可以加入产品表并在购买时更新shopping_cart,如下所示:

UPDATE shopping_cart c
  JOIN products p 
    ON p.pid = c.pid
   SET c.price = p.price
 WHERE c.customer_id = ?