在PHP應用程式中,操作資料庫是一項常見的任務。有許多情況下,我們需要在資料庫中刪除多個資料行。這就是批量刪除。在本文中,我將向您介紹如何在PHP中實現批次刪除操作。
首先,我們需要連接資料庫。使用下列函數:
$conn = mysqli_connect("localhost", "my_user", "my_password", "my_db");
這將連接到名為「my_db」的資料庫。您需要將其更改為自己的資料庫名稱,並提供正確的使用者名稱和密碼。
在批次刪除之前,我們需要取得使用者選擇的資料行。對於這個過程,我們需要使用HTML表單和一些JavaScript程式碼。
以下是一個範例HTML表單:
<form method="post" id="deleteForm"> <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Delete</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>John</td> <td><input type="checkbox" name="ids[]" value="1"></td> </tr> <tr> <td>2</td> <td>Jane</td> <td><input type="checkbox" name="ids[]" value="2"></td> </tr> <tr> <td>3</td> <td>Bob</td> <td><input type="checkbox" name="ids[]" value="3"></td> </tr> </tbody> </table> <button type="submit">Delete</button> </form>
這個表單有一個複選框列,每個複選框都帶有唯一的值(行ID)。當使用者選擇要刪除的資料行時,這些行的ID將會加入到名為「ids[]」的表單元素中。這個名字是一個數組,因為我們將選擇多個值。
現在,我們需要寫一些JavaScript程式碼來取得使用者選擇的值,並將其傳遞給後台的PHP腳本。
document.getElementById('deleteForm').addEventListener('submit', function(event) { event.preventDefault(); var selected = document.getElementsByName('ids[]'); var ids = []; for (var i = 0; i < selected.length; i++) { if (selected[i].checked) { ids.push(selected[i].value); } } // Send selected ids to PHP script for processing var request = new XMLHttpRequest(); request.open('POST', 'delete.php', true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); request.onload = function() { if (request.status >= 200 && request.status < 400) { // Success console.log(request.responseText); } else { // Error console.log('Error'); } }; request.onerror = function() { // Connection error console.log('Connection Error'); }; request.send('ids=' + JSON.stringify(ids)); });
此程式碼設定一個「submit」事件偵聽器,當使用者按一下「刪除」按鈕時,它將運行。首先,它會取得所有名為「ids[]」的複選框。接下來,它會建立一個包含使用者選擇的行ID的陣列。然後,它使用AJAX將標識符數組傳送到名為“delete.php”的PHP腳本。最後,當腳本回傳回應時,它會在控制台上列印回應內容。
現在,我們需要編寫PHP程式碼來處理請求。在我們上面的JavaScript程式碼中,我們將識別碼陣列作為JSON字串傳送到腳本。在PHP中,我們可以使用以下程式碼將JSON字串解碼為PHP陣列:
$ids = json_decode($_POST['ids']);
接下來,我們需要使用一個循環來刪除每個資料行:
foreach ($ids as $id) { $sql = "DELETE FROM users WHERE id=$id"; mysqli_query($conn, $sql); }
這個循環遍歷每個ID,並使用SQL查詢從「users」表中刪除對應的行。
以下是完整的PHP腳本:
在此腳本中,我們首先連接到資料庫,然後將標識符數組解碼為PHP數組。接下來,我們使用循環刪除每個資料行。最後,我們輸出一個成功訊息。
在本文中,我們了解如何在PHP中實作批次刪除操作。我們使用HTML表單和JavaScript程式碼來取得使用者選擇的資料行,然後使用PHP程式碼處理請求。大量刪除通常是一個必要的功能,在PHP應用程式中,您可以使用我們所講的技巧輕鬆地實現它。
以上是php中的批量刪除的詳細內容。更多資訊請關注PHP中文網其他相關文章!