Mettre a jour table mysql temporaire avec checkbox
Résolu/Fermé
christian82000
Messages postés
47
Date d'inscription
dimanche 27 décembre 2009
Statut
Membre
Dernière intervention
17 septembre 2020
-
Modifié le 23 févr. 2018 à 16:20
christian82000 Messages postés 47 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 17 septembre 2020 - 24 févr. 2018 à 19:01
christian82000 Messages postés 47 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 17 septembre 2020 - 24 févr. 2018 à 19:01
A voir également:
- Mettre a jour table mysql temporaire avec checkbox
- Table ascii - Guide
- Mettre a jour chrome - Accueil - Applications & Logiciels
- Table des matières word - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
2 réponses
yg_be
Messages postés
23490
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 mars 2025
Ambassadeur
1 570
Modifié le 23 févr. 2018 à 19:54
Modifié le 23 févr. 2018 à 19:54
bonsoir, j'ai l'impression que ton formulaire comporte des champs "input" superflus: il me semble que Index_ce[] et Selection[] suffisent amplement.
je traiterais la réponse ainsi:
je traiterais la réponse ainsi:
$update = $bdd -> prepare('UPDATE ce_copie SET Selection = true WHERE Index_ce = :index '); $selections = $_POST['Selection']; $indexes = $_POST['Index_ce']; foreach ($selections as $cle=>$selection){ if ($selection){ $index = $indexes[$cle]; $update -> execute(array('index' => $index)); } }et je suppose que le champ Selection est partout faux dans la table ce.
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
23 févr. 2018 à 16:20
23 févr. 2018 à 16:20
Bonjour,
As tu essayé de le faire " à la mano" directement dans ta bdd pour voir ce que ça donne ?
As tu essayé de le faire " à la mano" directement dans ta bdd pour voir ce que ça donne ?
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
23 févr. 2018 à 16:21
23 févr. 2018 à 16:21
de plus.. il semble que tu aies oublié de mettre un WHERE dans ta requête UPDATE
$update = $bdd -> prepare('UPDATE ce_copie SET Selection = :selection');
23 févr. 2018 à 20:30
Et au passage ... vu que tu sembles travailler en PDO ... il faut que tu actives la gestion des erreurs PDO et que tu places CHAQUE requête dans un bloc TRY/CATCH
Voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
23 févr. 2018 à 21:22
S'agissant d'une table temporaire, elle n'apparait pas dans phpMyAdmin. Comment faire en manuel?
Pour les try/catch, ok...
23 févr. 2018 à 21:38
Dans mon idée, le champ sélection est vide dans la table ce_copie avant sa mise à jour, il prend la valeur de 1 ou de 0 après la mise à jour ($selection=(!empty($_POST['Selection']) ? 1 : 0)). Mais il peut être mis à 0 par défaut, ou à false...
Je vérifie ta proposition en fin de soirée, et je te tiens au courant.
23 févr. 2018 à 22:12
23 févr. 2018 à 23:51
Apparemment, on avance!
Voilà, j'ai mis la valeur par défaut du champ Selection = 0 et repris ta proposition de code. Or, la correspondance entre 'Index_ce' et 'Selection' ne se fait pas. En effet, si je coche 5 lignes au hasard, je récupère les 5 premières lignes de la table, si j'en coche 3, je récupère 3 premières lignes, etc (dans ma version, on récupérait toutes les lignes!).
Un avis?