2016-05-29 61 views
2

enter image description here如何從數據庫中根據按鈕由用戶

我工作的蛋糕的網站,用戶可以在自己的車加蛋糕按下刪除車排。然後,他們的購物車摘要將顯示在此頁面中。目前,我只能從數據庫生成購物車摘要。我需要允許用戶點擊所需的刪除按鈕,並能夠從數據庫中刪除相應的購物車行。

PHP代碼

// To display the summary 

$pick = "SELECT bname,quantity,price,sum FROM cart WHERE user_id LIKE '$search'"; 
$result1 = mysqli_query($conn, $pick); 
$counting = 1; 


if (mysqli_num_rows($result1) > 0) { 

echo "<table align='center' class='summarytbl'>"; 
echo "<tr><th>No</th><th>Book Title</th><th>Price</th><th>Quantity</th><th>Total Price</th><th>Delete Order</th></tr>"; 

while($row = mysqli_fetch_assoc($result1)) { 

echo "<tr><td>".$counting."</td><td>".$row['bname']."</td><td>".$row['price']."</td><td>".$row['quantity']."</td><td>".$row['sum']."</td><td><button type='button' class='delete' name=".$row['bname']." value=".$row['quantity'].">Delete</button></td></tr>"; 


$counting++; 
} 
    echo"</table><br/><br/><br/>"; 

echo "<table align='center' class='new'>"; 
echo "<tr><td>Total Price</td><td>".$total."</td></tr>"; 
echo "<tr><td>Discount</td><td>".$discount."</td></tr>"; 
echo "<tr><td>Postage</td><td>".$postage."</td></tr>"; 
echo "<tr><td><b>Nett Price</b></td><td><b>".$nett."</b></td></tr>"; 
echo"</table>"; 


} 

我希望用這個說法來獲得按鈕的價值(數量)和姓名(名稱餅)從表中刪除一行。但是,它不工作。請幫助,謝謝。

if(isset($_POST['delete'])) 
{ 
    $command = "DELETE FROM cart WHERE bname= ".$row['bname']." AND quantity=".$row['quantity']; 
    mysqli_query($conn,$command); 


} 
+1

您應該首先[修復所有這些SQL注入漏洞](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 – Mike

+1

接下來,我沒有在數據庫中看到任何'user'列。如果你有多個用戶呢?如果你刪除'WHERE bname ='something'',你將刪除**全部**用戶。還有,在你添加一個'user'字段到那個查詢/表格後,什麼東西可以防止某人輸入另一個用戶的ID並從他們的購物車中添加或刪除? – Mike

+0

將'quantity'添加到查詢中是沒有用的,因爲大概'bname'和'user_id'(或者你想調用它的任何東西)是唯一的。所以你應該在這兩個上添加一個[唯一索引](http://stackoverflow.com/questions/635937/how-do-i-specify-unique-constraint-for-multiple-columns-in-mysql)。 – Mike

回答

0

你這樣做是不對的。如果您的購物車中有主要商品,請使用這些代碼,否則請在您的表格中添加一個。非常基本的方式來做到這一點。

<form action="/delete.php" method="post"> 
    <input type="hidden" name="cart_id" value=".$row['id']."> 
    <button type='submit' class='delete' value="Delete">Delete</button> 
</form> 

delete.php

// POST method take the input box value by using its name as an index 
if(isset($_POST['cart_id'])) 
{ 
    $command = "DELETE FROM cart WHERE id= ".$_POST['cart_id']."; 
    mysqli_query($conn,$command); 

//Redirect to cart page after this by using header("location") 

} 

其他的方式來做到這一點。

首先通過使用Ajax請求使您的頁面更加動態和直觀。當有人點擊刪除按鈕,然後獲取購物車ID,並將數據傳遞到特定的URL以對此執行操作。確保驗證此購物車屬於當前登錄用戶。

或者通過在url刪除按鈕上添加一個錨鏈接,如/ cart/delete/id。在此URL執行操作後,您可以將用戶重定向到購物車頁面。每當用戶從購物車中刪除一件商品時,它都會加載頁面。所以這不是一個好辦法。

+0

偉大的... 2種方式做到這一點...但代碼樣本在哪裏? – charlietfl

相關問題