Votre question

Ajouter des données ds CHAMP non vide (mysql)

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
26 Juillet 2006 16:17:52

Hello à tous...
voila mon probléme , j'aimerais bien savoir si c'est faisable en MYSQL la commande Ajouté des données a une table contenant déja des données dans un champ.
Comme exemple : CHAMP > "emails" contient déja toto@toto.fr et j'aimerais ajouter des valeurs comme un autre email en plus
Ex:
toto@toto.fr;nana@nana.fr;...

Je sais que c'est faisable avc les fichiers du genre (en C) fopen -a pour ajouter des caractère en fin de fichier... mais trouve pas en SQL !

Eclairsicez-moi...

Autres pages sur : ajouter donnees champ vide mysql

26 Juillet 2006 16:23:20

Excusez moi d'insister mais c'est vraiment urgent.

Merci d'avance.
26 Juillet 2006 16:29:21

des details sur le langage que tu utilises ca aiderait.. du genre PHP, java...
26 Juillet 2006 16:33:05

Ah oui j'avais oublier de préciser c'est du php
26 Juillet 2006 16:34:21

quel est l'interet de ce truc la?

Tu veux concaténer un champ? ajouter des valeurs à ta chaine de caractere?
26 Juillet 2006 16:39:23

tu peux faire (je pense) :

[edit]
SELECT CONCAT(email, ';', 'tata@tata.com')
FROM table
WHERE id=idemail

j'ai pas testé, mais de tete ca doit etre untruc du genre !
26 Juillet 2006 16:45:17

Faut d'abord recuperer la valeur du champs ensuite concatener la valeur avec un séparateur (";","/", etc... au choix) et ensuite concatener la nouvelle valeur a ajouter le tout dans une variable et pour finir faire un update de ta base de données.

ex :
$var=$var1."#".$var2;
$var est la valeur recuperer dans le champs de la base
$var2 est la nouvelle valeur à ajouter
$var la variable contenant les 2 autres séparer par un "#"
26 Juillet 2006 16:54:01

mais ca marche pas avec UPDATE je pense....???
:-( :-(
26 Juillet 2006 16:59:26

oui gizmo ça c'est claire mais pour un champ contiens + de 400 emails c'est trop !!!!:invasmiley:
en tout cas j'ai trouver une fonction mysql CONCAT() mais je suis pas trop sur koi!!!
alors quelqu'un peux m'aidé??
26 Juillet 2006 17:03:56

heu...regarde mon post plus haut je l'ai edité quelque temps apres avoir poste... :S
26 Juillet 2006 17:05:39

Je vois pas où est le probleme meme avec 400 emails :-?
Les boucles (for each, while,etc..) ca sert pas à rien.
26 Juillet 2006 17:09:35

on est d'accord, mais mysql sait faire la conactenation, donc ca sert a rien de reinventer le roue ^^.

en plus il est souvent (voire toujours) deconseillé d'alourdir son code inutilement.
26 Juillet 2006 17:13:59

oh la la je comprend vraiment rien à ce probleme!!

Premierement à quoi ça sert d'enregistrer tous les email dans un meme champs??

Ensuite en admettant que tu veuilles le faire, tu fais un update c'est pas compliqué!!! :-o :-o :-o Tu recupere avec un select la valeur deja présente, tu concatènes en php et tu fais un update en remplaçant l'ancienne valeur par la nouvelle!
26 Juillet 2006 17:18:44

Citation :
en plus il est souvent (voire toujours) deconseillé d'alourdir son code inutilement.


Euh oui je suis d'accord seulement c'est aussi déconseiller d'allourdir les traitements des requetes surtout quand ce n'est pas des procedures stockées.
Donc dans un cas comme dans l'autre et bien tu est obligé d'allourdir que ce soit ta requete ou ton code.
Et puis 400 emails dans une requete le serveur de BDD va pas apprecier :-D
26 Juillet 2006 17:23:23

surtout 400 email dans un meme champs y a de quoi se poser des questions ! ^^

mais bon, je crois que toutes nos solutions sont bonnes, donc voila, vive l'échange ! ^^
26 Juillet 2006 17:24:07

ah ouii je suis tout a fait d'accord avec vous! mais bon j'ai trouver une solution trés pratique ...
la fonction CONCAT()
requete genre :
  1. UPDATE table SET champ = CONCAT(champ, ';Enregistrement') WHERE id='$id'


merciii beaucoup :-D
26 Juillet 2006 17:29:46

Moi non plus je vois pas trop l'intéret d'avoir plusieur e-mail dans un champs mail...

A mon avis tu as gros problème d'analyse....

A ta place je ferai un champs mail_principal et un champs mail_secondaire....

Enfin je ne sais pas ce que tu veux faire donc voila....
26 Juillet 2006 17:42:26

ouais c'est bon en fait y avait rien à comprendre comme tu dis problème humain, problème d'analyse

Pour celui qui parlait d'optimisation, c'est pas parce qu'il existe une fonction sql toute faite qu'elle va optimiser le truc. Tout ce qui engendre des ecritures sur le serveur prend beaucoup de temps
26 Juillet 2006 17:42:42

ok je vous explique, je travail sur un script des newsletter (gestion des abonés,des archives, et des accusés de recéption)
j'utilise 2 table (email & archives)
-table email pour les emails inscrits (id+email+valide)
-table archives pour les msg envoyés (id+sujet+msg+lire)
le champ "lire" contien les accusés de reception , en fin les emails ...
;) 
26 Juillet 2006 19:11:03

ouaip ok !

Et en quoi tu as besoin d'avoir plusieurs adresse e-mail dans un champs ?

Logiquement un enregistrement correspond à une adresse e-mail....
26 Juillet 2006 19:43:42

et ben la table archives contien l'id le sujet , le msg...
et les "emails" (accusés) >> "toto@...;nana@..."
26 Juillet 2006 20:06:07

ouais donc ton analyse est mal faite...

Il devrait y avoir une relation entre la table archive et utilisateurs, tu pourrais comme ça faire de bien meilleurs traitements
26 Juillet 2006 20:25:01

Ah oui immer tu trouve!!!
alors donne moi la marche a suivre si possible !! :) 
merci d'avance
26 Juillet 2006 20:30:30

bah je t'ai dit une relation (N,N)

Je connais pas ton niveau en analyse, mais concretement en terme de base de données cela signifie une autre table où est enregistré la clé de l'archive et la clé de l'utilisateur
26 Juillet 2006 20:34:01

le mieux c'est de modifier ta table et de creer plusieur champs du genre : email_public email_prive email_msn ... ca te compliquera moins la vie et si apres tu souhaite faire un script qui permet d'obtenir le msn d'un membre c'est plus simple. >Enfin c'est mon avis et je suis pas pro
26 Juillet 2006 23:06:32

Ah oui imer je vois trés bien la solution merciii pour votre aide :-)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS