Comment faire un UPDATE sur un nom de champ SQL variable?
Résolu/Fermé
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
-
25 août 2014 à 15:33
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - 26 août 2014 à 20:43
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - 26 août 2014 à 20:43
A voir également:
- Comment faire un UPDATE sur un nom de champ SQL variable?
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Nom de l'adresse - Forum Consommation & Internet
- Windows update 0x80070643 - Accueil - Windows
- Nom d’adresse - Forum Réseaux sociaux
6 réponses
Utilisateur anonyme
25 août 2014 à 15:54
25 août 2014 à 15:54
Bonjour
Sii j'ai bien compris ta demande :
Entre nous, si tu es amené à écrire ce genre de choses, je pense que tu devrais re-réfléchir à l'organisation de tes données, genre avoir un seul champ AGENDA et ajouter un champ JOUR. Je dis ça sans connaître tout ton problème, c'est toi qui vois.
Sii j'ai bien compris ta demande :
$rep = $bdd->exec("UPDATE z_agenda SET AGENDA_".$jour."='$code' WHERE AGENDA_NOM='$agent' AND AGENDA_TYPE='code'");
Entre nous, si tu es amené à écrire ce genre de choses, je pense que tu devrais re-réfléchir à l'organisation de tes données, genre avoir un seul champ AGENDA et ajouter un champ JOUR. Je dis ça sans connaître tout ton problème, c'est toi qui vois.
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
25 août 2014 à 16:00
25 août 2014 à 16:00
Oui tu n'es pas le seul à le dire, et en le faisant je trouvais ça super crade, je sais bien, mais j'ai déjà masse informations et je ne savais vraiment pas comment l'ordonner...
J'ai peur que si j'enlève tous les champs "AGENDA_1" et les 30 qui suivent pour les remplacer par un champs unique "AGENDA_JOUR" par exemple, je ne puisse plus extraire les infos aussi facilement.
Même si c'est vrai que ça réglerait mon problème dans l'immédiat...
Sinon oui, tu as compris mon problème, mais aussi bien
SET AGENDA_".$jour."=
que
SET '$var'='$code' (avec $var="AGENDA_1")
Ne fonctionnent pas. Je n'ai pas de retour d'erreur sql, pas plus que d'ajout dans la bdd. Juste... Rien.
J'ai peur que si j'enlève tous les champs "AGENDA_1" et les 30 qui suivent pour les remplacer par un champs unique "AGENDA_JOUR" par exemple, je ne puisse plus extraire les infos aussi facilement.
Même si c'est vrai que ça réglerait mon problème dans l'immédiat...
Sinon oui, tu as compris mon problème, mais aussi bien
SET AGENDA_".$jour."=
que
SET '$var'='$code' (avec $var="AGENDA_1")
Ne fonctionnent pas. Je n'ai pas de retour d'erreur sql, pas plus que d'ajout dans la bdd. Juste... Rien.
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
25 août 2014 à 16:13
25 août 2014 à 16:13
Parce que je dois afficher 75 lignes de 30-31 cases chacune.
Ca prend déjà pas mal de temps (presque deux secondes), du coup si je dois boucler avec "trouve moi le 1", affiche, "trouve moi le 2", affiche, etc etc, je perdrais un max de temps de traitement non? La c'est simple, je cherche le mois, le nom du user, et tac, j'affiche la ligne.
Ca prend déjà pas mal de temps (presque deux secondes), du coup si je dois boucler avec "trouve moi le 1", affiche, "trouve moi le 2", affiche, etc etc, je perdrais un max de temps de traitement non? La c'est simple, je cherche le mois, le nom du user, et tac, j'affiche la ligne.
Utilisateur anonyme
25 août 2014 à 16:42
25 août 2014 à 16:42
SET '$var'='$code' (avec $var="AGENDA_1")
Normal que ça ne marche pas. Tu as mis des apostrophes autour de $var, qui représente un nom de champ : il ne faut pas d'apostrophes autour des identifiants SQL, seulement autour des valeurs.
SET AGENDA_".$jour."=
Sûr et certain que ça marche, sous réserve qu'il n'y ait pas de problème ailleurs. MySQL n'a aucune raison de faire la distinction avec
SET AGENDA_1=si $jour=1, car c'est php qui remplace la variable par sa valeur, et MySQL ne "voit" jamais de variable php.
Pour voir :
echo "UPDATE z_agendaça t'affiche quoi ?
SET AGENDA_".$jour."='$code'
WHERE AGENDA_NOM='$agent'
AND AGENDA_TYPE='code'";
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
25 août 2014 à 16:59
25 août 2014 à 16:59
Ca m'affiche la requête comme il faut en effet.
Diantre, j'essaye ça dès demain matin :D.
*affaire à suivre*
Tu aura ton croissant demain matin si ça fonctionne promis.
Diantre, j'essaye ça dès demain matin :D.
*affaire à suivre*
Tu aura ton croissant demain matin si ça fonctionne promis.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
26 août 2014 à 09:36
26 août 2014 à 09:36
OMG CA FONCTIONNE!!!
Tout il est parfait, youhou, tout ça tout ça.
Je mets le sujet en résolu et remercie le père :D
Pour ceux que ca intéresse, la syntaxe finale :
Tout il est parfait, youhou, tout ça tout ça.
Je mets le sujet en résolu et remercie le père :D
Pour ceux que ca intéresse, la syntaxe finale :
$rep = $bdd->exec("UPDATE z_agenda
SET AGENDA_".$debut."='$code'
WHERE AGENDA_NOM='$agent'
AND AGENDA_TYPE='code'");
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
26 août 2014 à 13:48
26 août 2014 à 13:48
aucune, j'ai repris ta syntaxe.
Juste que je pensais logique de mettre le code final tout en bas pour plus de lisibilité?
Je ne veux pas te voler la vedette c'est toi qui m'a aidé :D
Juste que je pensais logique de mettre le code final tout en bas pour plus de lisibilité?
Je ne veux pas te voler la vedette c'est toi qui m'a aidé :D
sluggy10
Messages postés
20
Date d'inscription
lundi 25 août 2014
Statut
Membre
Dernière intervention
28 octobre 2014
26 août 2014 à 13:53
26 août 2014 à 13:53
........
*long silence géné*
En effet, tu y avais déjà répondu à ce moment là.
J'ai mal lu probablement.
*long silence géné*
En effet, tu y avais déjà répondu à ce moment là.
J'ai mal lu probablement.
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
Modifié par Fallentree le 26/08/2014 à 20:45
Modifié par Fallentree le 26/08/2014 à 20:45
Bonne appétit...