Dans les applications PHP, exploiter des bases de données est une tâche courante. Il existe de nombreuses situations dans lesquelles nous devons supprimer plusieurs lignes de données dans la base de données. Il s'agit d'une suppression par lots. Dans cet article, je vais vous montrer comment implémenter des opérations de suppression groupée en PHP.
Tout d'abord, nous devons nous connecter à la base de données. Utilisez la fonction suivante :
$conn = mysqli_connect("localhost", "my_user", "my_password", "my_db");
Cela vous connectera à la base de données nommée "my_db". Vous devez le remplacer par votre propre nom de base de données et fournir le nom d'utilisateur et le mot de passe corrects.
Avant la suppression par lots, nous devons obtenir les lignes de données sélectionnées par l'utilisateur. Pour ce processus, nous devons utiliser un formulaire HTML et du code JavaScript.
Voici un exemple de formulaire 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>
Ce formulaire comporte une colonne de cases à cocher, chacune avec une valeur unique (ID de ligne). Lorsque l'utilisateur sélectionne des lignes de données à supprimer, les ID de ces lignes sont ajoutés à un élément de formulaire nommé « ids[] ». Le nom est un tableau car nous allons sélectionner plusieurs valeurs.
Maintenant, nous devons écrire du code JavaScript pour obtenir la valeur sélectionnée par l'utilisateur et la transmettre au script PHP en arrière-plan.
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)); });
Ce code configure un écouteur d'événement "soumettre" qui s'exécutera lorsque l'utilisateur clique sur le bouton "Supprimer". Tout d'abord, toutes les cases nommées "ids[]" sont cochées. Ensuite, il crée un tableau contenant les ID de ligne sélectionnés par l'utilisateur. Il utilise ensuite AJAX pour envoyer le tableau d'identifiants à un script PHP nommé "delete.php". Enfin, lorsque le script renvoie une réponse, il imprime le contenu de la réponse sur la console.
Maintenant, nous devons écrire du code PHP pour gérer la demande. Dans notre code JavaScript ci-dessus, nous envoyons le tableau d'identifiants au script sous forme de chaîne JSON. En PHP, nous pouvons décoder une chaîne JSON en un tableau PHP en utilisant le code suivant :
$ids = json_decode($_POST['ids']);
Ensuite, nous devons utiliser une boucle pour supprimer chaque ligne de données :
foreach ($ids as $id) { $sql = "DELETE FROM users WHERE id=$id"; mysqli_query($conn, $sql); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!