UPDATE dans array() qui ne fonctionne pas
Résolu/Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
14 juin 2019 à 22:20
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 15 juin 2019 à 12:51
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 15 juin 2019 à 12:51
A voir également:
- UPDATE dans array() qui ne fonctionne pas
- Windows update 0x80070643 - Accueil - Windows
- Windows update ne fonctionne pas - Guide
- Asus live update - Télécharger - Utilitaires
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Winget update - Guide
4 réponses
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 562
14 juin 2019 à 22:28
14 juin 2019 à 22:28
bonjour, je suis étonné de lire que tu fais une boucle avec plusieurs UPDATE, mais que le WHERE soit à chaque fois identique.
d'où vient $Pseudo? à quoi sert $key?
par ailleurs, tu écris vouloir faire un update d'un array(), et il me semble que tu mets à jour des données dans une base de données SQL.
je ne comprends pas bien "le même dernier enregistrement qui se répète sur toutes les lignes,": peux-tu donner un exemple?
d'où vient $Pseudo? à quoi sert $key?
par ailleurs, tu écris vouloir faire un update d'un array(), et il me semble que tu mets à jour des données dans une base de données SQL.
je ne comprends pas bien "le même dernier enregistrement qui se répète sur toutes les lignes,": peux-tu donner un exemple?
yg_be
Messages postés
23447
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 janvier 2025
Ambassadeur
1 562
15 juin 2019 à 12:08
15 juin 2019 à 12:08
Je comprends un peu mieux ce que tu veux réaliser.
Je pense que la structure des tables n'est pas optimale. Comme je ne sais pas ce que tu essaies de représenter, ni ce que tu vas faire avec les données il m'est difficile de te conseiller.
Cependant, je pense à différentes options:
1) garder la structure, et faire un INSERT également pour data_2
2) utiliser 2 tables différentes, une avec Pseudo, Data_1, l'autre avec Pseudo, Data_2
3) ajouter un numéro unique à la table, qui deviendrait Pseudo, num, Data_1, Data_2
4) insérer simultanément Data_1 et Data_2
5) changer la table, et avoir des colonnes pseudo, jeu, data. ainsi:
Pseudo | Jeu | Data
-------------------------------
JOHN | 2 | CMR
JOHN | 2 | CIV
JOHN | 2 | EGY
JOHN | 2 | GHA
JOHN | 2 | GIN
JOHN | 2 | GNB
JOHN | 1 | BDI
JOHN | 1 | CMR
JOHN | 1 | CIV
JOHN | 1 | EGY
JOHN | 1 | GIN
JOHN | 1 | GNB
Je pense que la structure des tables n'est pas optimale. Comme je ne sais pas ce que tu essaies de représenter, ni ce que tu vas faire avec les données il m'est difficile de te conseiller.
Cependant, je pense à différentes options:
1) garder la structure, et faire un INSERT également pour data_2
2) utiliser 2 tables différentes, une avec Pseudo, Data_1, l'autre avec Pseudo, Data_2
3) ajouter un numéro unique à la table, qui deviendrait Pseudo, num, Data_1, Data_2
4) insérer simultanément Data_1 et Data_2
5) changer la table, et avoir des colonnes pseudo, jeu, data. ainsi:
Pseudo | Jeu | Data
-------------------------------
JOHN | 2 | CMR
JOHN | 2 | CIV
JOHN | 2 | EGY
JOHN | 2 | GHA
JOHN | 2 | GIN
JOHN | 2 | GNB
JOHN | 1 | BDI
JOHN | 1 | CMR
JOHN | 1 | CIV
JOHN | 1 | EGY
JOHN | 1 | GIN
JOHN | 1 | GNB
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
14 juin 2019 à 23:09
14 juin 2019 à 23:09
Merci yg_be de t'intéresser à mon poste.
Voici les données réelles et comment il se comporte.
Les données sont générés et testés. Je les mets en variables car pseudo change selon l'utilisateur et $JEU varie selon la colonne a mettre à jour :
Valeur réels a ajouter (8 lignes) :
Récupérés depuis des <option> générés dans ce select :
Table
Résultat souhaité :
HTML :
Je ne sais pas s'il manque autre chose mais voilà.
Voici les données réelles et comment il se comporte.
Les données sont générés et testés. Je les mets en variables car pseudo change selon l'utilisateur et $JEU varie selon la colonne a mettre à jour :
$Pseudo = "JOHN";
$JEU = "Data_2";
Valeur réels a ajouter (8 lignes) :
CMR
CIV
EGY
GHA
GIN
GNB
MDG
KEN
Récupérés depuis des <option> générés dans ce select :
<select name="Fr_Selection[]" multiple></select>
Table
tb_jeu_can_Rà mettre à jour (16 lignes existent déjà) :
Pseudo | Data_1 | Data_2 ------------------------------- JOHN | BDI | KEN JOHN | CMR | KEN JOHN | CIV | KEN JOHN | EGY | KEN JOHN | GIN | KEN JOHN | GNB | KEN JOHN | KEN | KEN JOHN | MDG | KEN JOHN | MAR | KEN JOHN | MLI | KEN JOHN | NAM | KEN JOHN | MRT | KEN JOHN | NGA | KEN JOHN | UGA | KEN JOHN | COG | KEN JOHN | GHA | KEN
Résultat souhaité :
Pseudo | Data_1 | Data_2 ------------------------------- JOHN | BDI | CMR JOHN | CMR | CIV JOHN | CIV | EGY JOHN | EGY | GHA JOHN | GIN | GIN JOHN | GNB | GNB JOHN | KEN | MDG JOHN | MDG | KEN JOHN | MAR | JOHN | MLI | JOHN | NAM | JOHN | MRT | JOHN | NGA | JOHN | UGA | JOHN | COG | JOHN | GHA |
HTML :
<select name="Fr_Selection[]" multiple=""> <option value="CMR">CMR</option> <option value="CIV">CIV</option> <option value="EGY">EGY</option> <option value="GHA">GHA</option> <option value="GIN">GIN</option> <option value="GNB">GNB</option> <option value="MDG">MDG</option> <option value="KEN">KEN</option> </select>
Je ne sais pas s'il manque autre chose mais voilà.
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
14 juin 2019 à 23:29
14 juin 2019 à 23:29
J'ai testé l'INSERT et il fonctionne bien, mais le UPDATE a le même problème.
Voici le code de l'INSERT :
Voici le code de l'INSERT :
try{foreach($SLCT as $i) { $AD = $pdo->prepare ("INSERT INTO tb_jeu_can_R (Pseudo, $JEU) VALUES (:Pseudo, :$JEU)"); $AD ->execute(array("Pseudo" => $Pseudo, $JEU => $i)); } } catch (PDOException $e) {echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";}
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
15 juin 2019 à 12:51
15 juin 2019 à 12:51
J'ai omis de mettre à jour Data_2 selon Data_1
Merci de ton aide yg_be !
Ainsi il met à jour uniquement là où le pseudo existe les données selon Data_1 :
Merci de ton aide yg_be !
try{ $UP = $pdo->prepare("UPDATE tb_jeu_can_R SET $JEU=:$JEU WHERE Pseudo='".$Pseudo."' AND Data_1=:$JEU"); foreach($SLCT as $i){ $UP->execute(array($JEU => $i)); } } catch (PDOException $e) {echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";}
Ainsi il met à jour uniquement là où le pseudo existe les données selon Data_1 :
Pseudo | Data_1 | Data_2 ------------------------------- JOHN | BDI | JOHN | CMR | CMR JOHN | CIV | CIV JOHN | EGY | EGY JOHN | GIN | GIN JOHN | GNB | GNB JOHN | KEN | KEN JOHN | MDG | MDG JOHN | MAR | JOHN | MLI | JOHN | NAM | JOHN | MRT | JOHN | NGA | JOHN | UGA | JOHN | COG | JOHN | GHA | GHA