Maison >développement back-end >Problème PHP >Suppression par lots en php

Suppression par lots en php

PHPz
PHPzoriginal
2023-05-07 12:02:07696parcourir

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.

  1. Connectez-vous à la base de données

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.

  1. Obtenir les lignes de données sélectionnées

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.

  1. Gestion des demandes de suppression

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);
}
#🎜🎜 #Cette boucle parcourt chaque ID et utilise une requête SQL pour supprimer la ligne correspondante de la table "users".

    Exemple de code complet
Voici le script PHP complet :

Dans ce script, nous nous connectons d'abord à la base de données, puis décode le tableau d'identifiants dans un tableau PHP. Ensuite, nous utilisons une boucle pour supprimer chaque ligne de données. Enfin, nous générons un message de réussite.

    Summary
Dans cet article, nous avons appris comment implémenter des opérations de suppression par lots en PHP. Nous utilisons un formulaire HTML et du code JavaScript pour obtenir la ligne de données sélectionnée par l'utilisateur, puis utilisons du code PHP pour gérer la demande. La suppression groupée est souvent une fonctionnalité nécessaire, et dans les applications PHP, vous pouvez facilement l'implémenter à l'aide des techniques que nous avons abordées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn