2013-05-27 96 views
0

我基本上有一個updatecart.php腳本,它將數據插入到數據庫表中,一旦點擊了HTML頁面的提交按鈕,它就會轉到display.php顯示更新的內容。我遇到的問題是我的顯示數據中有一個數量字段,如果用戶單擊提交按鈕(將東西添加到購物車),那麼我希望數量增加多少用戶在下拉菜單中選擇的數量在HTML頁面中。現在,如果用戶再次單擊提交按鈕,則不會發生任何反應,因爲它是將相同的數據添加到數據庫表中。如何檢查一個提交按鈕是否已經在PHP中點擊

代碼:

HTML:

<form name = "AddToCart" action ="../updatecart.php" method='post'> 
    Quantity: 
    <select name="Quantity"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    </select> &nbsp;&nbsp;&nbsp; 
    <input type ="submit" name ="Add" value="Add To Cart"/> 
    </form> 

updatecart.php:

<?php 

// Connection to database omitted 

$Quantity = $_POST['Quantity']; 

$query = "INSERT INTO Cart VALUES 
('1', 'The Fiqh of Dawah', '18.00', 'Books', '$Quantity')"; 
mysql_query($query); 

header("location:displaycart.php"); 

?> 

Display.php的:

//Not necessary to show this as it simply uses `echo` to create a table and display the whole table data with `SELECT * FROM Cart` 
+0

請不要使用'mysql'庫。它已被棄用。 'mysqli'是替代品。 http://us2.php.net/manual/en/book.mysqli.php – j883376

+2

小心:您的代碼不安全!它可以用[SQL注入](http://en.wikipedia.org/wiki/SQL_injection) –

回答

1

你需要檢查,如果該項目已經在車用做SELECT第一存在,那麼INSERT之間進行選擇(如果沒有行存在於車這個項目)或UPDATE(如果此項目已在購物車)。

在MySql中,您也可以通過使用INSERT ... ON DUPLICATE KEY UPDATE Syntax來完成。但是你需要有一個主鍵才能這樣做。

+0

Thankyou @Eric Citaire黑客入侵,ON DUPLICATE KEY UPDATE是我需要和它的工作。 –

0

可以使用isset($_POST['Add'])檢查提交b utton遞交或不

if(isset($_POST['Add'])) 
{ 
$Quantity = $_POST['Quantity']; 

$query = "INSERT INTO Cart VALUES 
('1', 'The Fiqh of Dawah', '18.00', 'Books', '$Quantity')"; 
mysql_query($query); 

header("location:displaycart.php"); 
} 
0

您可以在上面做你的updatecart.php檢查,以檢查是否提交已被點擊。

喜歡的東西

isset($_POST['Add']) { 
// insert data into DB 
} 
else { 
// redirect somewhere as they havent clicked Submit button 
} 

你應該還可以通過檢查運行您的用戶數據/淨化你之前輸入到你的數據庫。

相關問題