Valeur select multiple dans 1 champ mysql
Résolu/Fermé
A voir également:
- Valeur select multiple dans 1 champ mysql
- Paris multiple 2/5 explication ✓ - Forum Loisirs / Divertissements
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Liste déroulante choix multiple excel - Guide
- Mysql community server - Télécharger - Bases de données
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
5 réponses
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
21 mai 2009 à 17:43
21 mai 2009 à 17:43
Pour récupérer toutes les valeurs d'un select multiple, tu dois utiliser une paire de crochets dans le name (name="nomduselect[]"), les valeurs seront retournées sous forme d'un array dans php.
re bonjour :),
Oui , merci patachon, ca j avais compris,... :p, puisque je dois le faire pour les afficher, par exemple pour un preview
mais comment faire pour l inserer dans un seul champ mysql ?
en bref, j aimerais l inserer dans un seul champ mysql, en chaine de caractere, et inserer apres chaque valeur un caractere.
exemple:
multiple=multiple name=language[] method=post
//selection possible
=>php
=>java
=>c++
je recupere avec echo et une boucle foreach
foreach($_POST['language'] as $value)
{
echo $value.'<br>';
}
jusque la pas de probleme, la selection va s afficher
j aimerai reprendre toutes cette selections et l inserer par dans un seul champ, par exemple varchar
et j explique plus que j ai eu l idée de reprendre toute les variables et de les inserer dans une fonctions "string" ou une de ses variantes "substr" etc... mais je n ai rien trouver qui me permettre de le faire, ou c est moi qui ne sait pas !
ou
d afficher les echo de ma boucle foreach dans un input de type: text area avec un petit script java pour etre soumis a une troisieme page de traitement ?? mais ca me parait banquale..
C est pour cela que je vous sollicite
entre temp j ai deja essayer de faire une " update concat " dans ma boucle foreach , de se style:
foreach($_POST['language'] as $value)
{
mysql_query("UPDATE `ma_table` SET mon_champ=CONCAT(ma_collonne, '$value') WHERE id='1'") or die ('erreur d insertion multiple'.mysql_error());
}
quand je fait un test sql avec cette requete sur phpmyadmin par exemple (toujours) ca marche nikel
mais dans ma boucle , rien...
pas d erreur , mais rien n est inserer dans le champ et tout ce qui aurait pu y avoir est effacer !
en plus une requete dans une boucle, sa risque d etre lourd si le visiteurs fait beaucoup de selections
merci de vos reactions !
Oui , merci patachon, ca j avais compris,... :p, puisque je dois le faire pour les afficher, par exemple pour un preview
mais comment faire pour l inserer dans un seul champ mysql ?
en bref, j aimerais l inserer dans un seul champ mysql, en chaine de caractere, et inserer apres chaque valeur un caractere.
exemple:
multiple=multiple name=language[] method=post
//selection possible
=>php
=>java
=>c++
je recupere avec echo et une boucle foreach
foreach($_POST['language'] as $value)
{
echo $value.'<br>';
}
jusque la pas de probleme, la selection va s afficher
j aimerai reprendre toutes cette selections et l inserer par dans un seul champ, par exemple varchar
et j explique plus que j ai eu l idée de reprendre toute les variables et de les inserer dans une fonctions "string" ou une de ses variantes "substr" etc... mais je n ai rien trouver qui me permettre de le faire, ou c est moi qui ne sait pas !
ou
d afficher les echo de ma boucle foreach dans un input de type: text area avec un petit script java pour etre soumis a une troisieme page de traitement ?? mais ca me parait banquale..
C est pour cela que je vous sollicite
entre temp j ai deja essayer de faire une " update concat " dans ma boucle foreach , de se style:
foreach($_POST['language'] as $value)
{
mysql_query("UPDATE `ma_table` SET mon_champ=CONCAT(ma_collonne, '$value') WHERE id='1'") or die ('erreur d insertion multiple'.mysql_error());
}
quand je fait un test sql avec cette requete sur phpmyadmin par exemple (toujours) ca marche nikel
mais dans ma boucle , rien...
pas d erreur , mais rien n est inserer dans le champ et tout ce qui aurait pu y avoir est effacer !
en plus une requete dans une boucle, sa risque d etre lourd si le visiteurs fait beaucoup de selections
merci de vos reactions !
petite erreur !! dsl pas su editer
la requete concat tester dansla boucle
foreach($_POST['language'] as $value)
{
mysql_query("UPDATE `ma_table` SET ma_collonne=CONCAT(ma_collonne, '$value') WHERE id='1'") or die ('erreur d insertion multiple'.mysql_error());
}
merci
la requete concat tester dansla boucle
foreach($_POST['language'] as $value)
{
mysql_query("UPDATE `ma_table` SET ma_collonne=CONCAT(ma_collonne, '$value') WHERE id='1'") or die ('erreur d insertion multiple'.mysql_error());
}
merci
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
21 mai 2009 à 18:19
21 mai 2009 à 18:19
Désolé, j'avais mal compris ton problème.
Par contre vouloir insérer ces valeurs dans une seule colonne est une erreur.
Une colonne doit généralement contenir une seule valeur.
Car avec ton exemple, tu vas en devoir passer par un système bancal pour tester si les valeurs n'existent pas dans ta colonne avant de les insérer.
Donc une table externe pour stocker ses valeurs s'avère indispensable.
Par contre vouloir insérer ces valeurs dans une seule colonne est une erreur.
Une colonne doit généralement contenir une seule valeur.
Car avec ton exemple, tu vas en devoir passer par un système bancal pour tester si les valeurs n'existent pas dans ta colonne avant de les insérer.
Donc une table externe pour stocker ses valeurs s'avère indispensable.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Wahhh, j etais partis dans un de ses truc pas possible de dynamiser un select multiple avec des selection reprises des champs des autres visiteurs et d en donner la possibiliter d en ajouter, etc....
mais j avais pas pensez a tester les valeurs et donc selections deja existante etc....
c est vrai je risque d avoir des doublons dans les tables, ce qui n est pas si grave si l utilisateur peut supprimer certaines de ses preferences..
mais si je dynamise le select muti avec des doublons et qu il y en a 50 on risque d avoir un long select multi avec les meme choix voir une differences infime si je doit insensibiliser a la case etc....
merci de me remettre dans la bonne voie !
ben merci, me reste plus qu a faire une table par groupe, une autre avec un champ par choix et l id qui servira a les referencer et celle ci s ajoutera a la table pref qui comportera l id de mon visiteur enregistrer
bref une table d id de preference, enfin, je devais deja la faire pour d autre fonctions, ben merci pour tout patachon !
bye
mais j avais pas pensez a tester les valeurs et donc selections deja existante etc....
c est vrai je risque d avoir des doublons dans les tables, ce qui n est pas si grave si l utilisateur peut supprimer certaines de ses preferences..
mais si je dynamise le select muti avec des doublons et qu il y en a 50 on risque d avoir un long select multi avec les meme choix voir une differences infime si je doit insensibiliser a la case etc....
merci de me remettre dans la bonne voie !
ben merci, me reste plus qu a faire une table par groupe, une autre avec un champ par choix et l id qui servira a les referencer et celle ci s ajoutera a la table pref qui comportera l id de mon visiteur enregistrer
bref une table d id de preference, enfin, je devais deja la faire pour d autre fonctions, ben merci pour tout patachon !
bye