2013-05-04 123 views
0

我在購買表格和更新設施表格中插入問題。比方說,用戶通過product_id和product_quantity進行了購買。在當前表格中插入數據並更新另一個表格MySQL

查詢正在運行。但它插入兩次相同的數據,而不是更新設施表。

當用戶點擊提交時,我想將product_id和product_quantity插入到購買表中。並使用與其關聯的product_id和product_quantity更新設施表。

這裏是我的代碼

<?php 
include 'dbconn.inc.php'; 
include 'functions.inc.php'; 

$sql1 = "SELECT * FROM facilities"; 

$res = $mysqli->query($sql1); 
$facilities = array(); 

while($row = $res->fetch_array(MYSQLI_ASSOC)){ 

$facilities[]['id'] = $facilities_id; 
$facilities[]['product_id'] = $facilities_product_id; 
$facilities[]['product_current_quantity'] = $product_current_quantity; 
} 


$id = $mysqli->real_escape_string ($_POST['id']); 
$purchase_id = $mysqli->real_escape_string($_POST['purchase_id']); 
$facility_id = $mysqli->real_escape_string($_POST['facility_id']); 
$product_quantity = $mysqli->real_escape_string($_POST['product_quantity']); 



$sql1 = "UPDATE facilities 
SET 

`product_current_quantity` = '$product_quantity + $product_current_quantity' 


WHERE $facility_id = $facilities_id AND $id = $facilities_product_id "; 


$sql = "INSERT INTO purchases 
(
`purchase_id`, 
`facility_id`, 
`product_quantity`,, 
    `product_id` 
) 
    VALUES 
    (

    '$purchase_id', 
    '$facility_id', 
    '$product_quantity', 
    '$id' 

    )"; 

我做了一些研究,我想我需要使用觸發器。但我從來沒有使用過觸發器。任何幫助都會很棒。謝謝!

+0

「*同時*」在數據庫中沒有任何意義。總是有訂單。你面臨的實際問題是什麼? – Shoe 2013-05-04 04:06:35

+0

SQL看起來不錯,但你沒有在代碼中運行它。如果你正在運行,並且數據庫沒有正確更新/更新,請說出來。 – 2013-05-04 04:16:14

+0

查詢正在運行,但它在購買表中插入了兩次數據,根本沒有更新設施表。 – user1754822 2013-05-04 04:22:08

回答

0

如果您對查詢有疑問,請執行您的查詢並更好地使用echo語句。 使用「php.net」

+0

我一直在試圖迴應,看看從表中取出什麼查詢.... – user1754822 2013-05-04 05:23:54

+0

請執行查詢,如$ mysqli-> query($ sql1);在插入和更新查詢後,您的代碼沒有執行查詢代碼。 – 2013-05-04 06:03:33

+0

我發現從設施表中沒有取值。我怎樣才能從另一個表中獲取數據? while($ row = $ res-> fetch_array(MYSQLI_ASSOC)){ $ facilities [] ['id'] = $ facilities_id; $ facilities [] ['product_id'] = $ facilities_product_id; $ facilities [] ['product_current_quantity'] = $ product_current_quantity; } – user1754822 2013-05-04 06:46:06

0

使用該代碼將更新

product_current_quantity = product_current_quantity + $product_current_quantity 

他們有多少數量可以添加到您的產品數量,他們總結了當前數目。

0

您對相同變量$ sql沒有任何條件使用插入查詢和更新查詢。如果這樣,總是隻執行您的以下查詢。 然後不再更新只有插入將反映在您的表中。

$sql = "INSERT INTO purchases 
(
`purchase_id`, 
`facility_id`, 
`product_quantity`,, 
    `product_id` 
) 
    VALUES 
    (

    '$purchase_id', 
    '$facility_id', 
    '$product_quantity', 
    '$id' 

    )"; 
相關問題