【问题标题】:Insert Value From One Table to Another on Update MySql, PHP在更新 MySql,PHP 上将值从一个表插入到另一个表
【发布时间】:2013-08-15 11:24:10
【问题描述】:

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

场景:我有一张桌子 (Shopping_Cart)。它将我所有的客户购物车项目存储在CustomerID、PID、Price、Status 列中(状态可以是“IN_CART”,表示已添加,“OPEN”表示已付款并准备好进行处理和运输)。然后我有一张桌子(产品)。它将产品信息存储在PID、Price,Weight 列中。当我的客户将商品放入购物车时,我不会记录价格。价格每天都在变化,所以如果他们今天添加一些东西,当他们明天回来时,他们的购物车中的价格可能会增加或减少。当我的客户结帐并确认付款时,我试图在 Products.PID = Shopping_Cart.PID 的 (Products) 表中获取价格,然后将该价格应用于 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);
}

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    假设您有一个 *shopping_cart* 表,其中包含 price 和 product_id 列,您可以使用products 表,如下所示:

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

    【讨论】:

    • 我的想法很接近,但不知道如何执行这个想法。谢谢。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 2012-05-01
      • 2012-12-05
      • 2020-11-25
      • 1970-01-01
      • 2014-07-29
      • 2016-08-20
      • 1970-01-01
      相关资源
      最近更新 更多