2014-11-05 74 views
0

我正在創建一個購物車系統,並試圖找到一種方法來有一個簡單的按鈕,一旦按下刪除相應的行。但是,我似乎無法找到一種方法來使用while循環來動態執行此操作。使用php刪除一個項目從一個MySQL購物車

<?php 
       //connect to DB. 
       $con = mysqli_connect("localhost", "root", "", "books"); 
       if(mysqli_connect_errno()) 
       { 
        echo "Failed to connect to MySql: ". mysqli_connect_error(); 
       } 
       $query = "SELECT * FROM cart WHERE customerID = '$_SESSION['id']'"; 
       $result = mysqli_query($con, $query); 
       //creates a table for dumping the DB to, loops through the DB and posts the contents elegantly. 
       echo "<table>"; 
       while($row = mysqli_fetch_array($result)) 
       { 
       echo "<tr><td>" . $row['bookAuthor'] . "</td><td>" . $row['bookTitle'] . "</td><td>" . $row['bookPrice'] . "</td></tr>"; 


       $totalprice += $row['bookPrice']; 
       } 

       echo "</table>"; 
       echo "The total present price is: $".$totalprice; 
       //closes the conncection to the DB 
       mysqli_close($con); 
?> 

我認爲試圖把回聲查詢語句到數據庫中並添加「$行[‘deletebutton’]」以while循環,但我不知道這將一定工作。

+1

我不完全相信我明白你在問什麼。但是,爲什麼你不添加一個複選框到每一行和一個更新按鈕。提交腳本時,可以使用MySQL IN函數刪除所有選中的項目。 – ProWebMonkey 2014-11-05 15:49:21

+0

我會給你一個去看看它是如何工作的。這基本上是我正在嘗試的。 – 2014-11-05 15:50:59

回答

1

簡單的方法是創建一個新頁面並將消息發送到此頁面以刪除該項目。 因此,在表中添加一個新列的鏈接

<a href="removeItemFromBasket.php?id=2">delete</a> 

,並在頁面你把這個值。

+0

這解決了最好的。謝謝你的建議,我一直堅持這幾天。 – 2014-11-05 19:46:27

0

要擴大投遞到問題的評論,你可以添加到您的行:

echo "<tr><td>" . $row['bookAuthor'] . "</td><td>" . $row['bookTitle'] . "</td><td>" . $row['bookPrice'] . "</td><td><input type='checkbox' name='remove[]' value='" . $row['ROW_ID'] . "' /></td></tr>"; 

,然後在表單提交的數據,你可以做這樣的事情:

$query = "DELETE FROM cart WHERE ROW_ID IN (" . implode(',',$_POST['remove']) . ")"; 

請記住在查詢中使用它之前檢查刪除的值。

+0

嗨, 當我試圖實現這個,我收到一個無效的參數警告implode。不知道如何處理複選框的輸入,所以我不知道解決方法。 – 2014-11-05 19:09:58

+0

我需要查看你的代碼,看看我能否發現有什麼問題。同樣在我的例子中$ _POST ['remove']必須是一個數組。 – ProWebMonkey 2014-11-05 20:56:16