UPDATE multiple avec checkbox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : UPDATE multiple avec checkbox

Re: UPDATE multiple avec checkbox

par two3d » 03 déc. 2021, 01:01

J'ai posté un petit script permettant de le faire : édition multiple en PHP

Re: UPDATE multiple avec checkbox

par @rthur » 01 déc. 2021, 18:07

Bah teste et tu verras bien si ça marche :-D

Et comme ça ne marchera probablement pas, fais bien des var_dump($_POST); et var_dump($sql); pour debuguer

Re: UPDATE multiple avec checkbox

par veroli » 01 déc. 2021, 15:20

Dans le cas où je voudrais mettre à jour toutes les données du formulaire ci-dessous (en ayant coché les différentes Checkboxes).

Est-ce que quelque chose comme ceci pourrait fonctionner ?

Code : Tout sélectionner

//formulaire avec données à récupérer. echo'<form method="post" action="update.php">'; echo'<input type="checkbox" name='id_var1[]' value="id_var1"><input type="text" value="valeur1" name="test" id="test" size="5"/>'; echo'<input type="checkbox" name='id_var2[]' value="id_var2"><input type="text" value="valeu2r" name="test" id="test" size="5"/>'; echo'<input type="checkbox" name='id_var3[]' value="id_var3"><input type="text" value="valeur3" name="test" id="test" size="5"/>'; echo'<input type="checkbox" name='id_var4[]' value="id_var4"><input type="text" value="valeur4" name="test" id="test" size="5"/>'; <button type="submit"> echo'</form>'; //fichier update.php $id_var = implode(",",$_POST['id_var']); $test = $_POST['test']; $sql = "UPDATE table SET test='$test' WHERE id_var IN ({$id_var})"; $conn->query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysqli_error());
Merci pour vos retours....

Re: UPDATE multiple avec checkbox

par veroli » 28 nov. 2021, 00:38

Un grand merci pour tes explications. Je vais tester tout ça dès que j'ai un peu de temps.

Re: UPDATE multiple avec checkbox

par @rthur » 27 nov. 2021, 17:28

Est-ce que tu récupères bien la liste de tous les utilisateurs que tu as cochés ?
Typiquement un var_dump($_POST); ou var_dump($_GET); devrait te l'indiquer.

Ensuite, il faut transformer la variable que tu obtiens pour qu'elle soit utilisable dans une requête SQL.
Donc probablement avec un implode pour avoir une liste d'id séparés par des virgules.
Là aussi, une fois que tu as fait ton implode, fais un var_dump($liste_id) pour vérifier ce que tu obtiens.

Et, enfin tu fais ta requête SQL avec l'opérateur WHERE... IN
https://sql.sh/cours/where/in

Un point important, si tu utilises une requête préparée PDO, il te faut binder chaque valeur si tu veux faire les choses proprement. Or comme le nombre d'utilisateurs sélectionnés peut être variable (1, ou 2, ou 3, ou+...), il faut rendre alors cette requête dynamique en fonction du nombre de valeurs.
Il y a une bonne explication (en anglais) avec des exemples de code ici :
https://phpdelusions.net/pdo#in

Avant de coder ta requête, comme toujours teste là dans phpmyadmin pour vérifier qu'elle fonctionne comme souhaitée.

UPDATE multiple avec checkbox

par veroli » 27 nov. 2021, 13:11

Bonjour,

J'ai une table "matable" avec différents utilisateurs.

Lors d'une requête Mysql, j'affiche dans un tableau le contenu de "matable" (user_id, nom, prenom).

Je voudrais simplement pouvoir mettre à jour en une seule requête la table "matable" en récupérant le user_id des utilisateurs dont un checkbox est coché via un formulaire.

J'ai déjà passé pas mal de temps pour trouver une solution (en particulier avec IMPLODE), mais je n'y arrive pas.

ESt-ce qu'une âme charitable pourrait éventuellement me donner quelques explications avec une exemple simple ? :o