Page 1 sur 1

Insert plusieurs valeurs

Posté : 30 nov. 2006, 12:39
par pixfacto
Bonjour,

C'est assez bête, mais je n'arrive pas à insérer plusieurs valeurs d'un menu déroulant multiple dans le champ de ma table.

Une seule valeur s'insère.

J'ai essayé avec SET et ENUM...

Que dois-je faire?

Merci

Re: Insert plusieurs valeurs

Posté : 30 nov. 2006, 12:47
par Rei Itchido
Que dois-je faire?
Merci
Reposer ta question en étant plus clair et en mettant un minimum de code :?

Posté : 30 nov. 2006, 12:52
par fred9999
la question serai plutot sous quel format ta valeur est envoyé non??

car ta valeur est renvoyé sous forme de tableau

Code : Tout sélectionner

//code php $i = 0; while ($_POST["recherchecd"][$i]) { echo $_POST["recherchecd"][$i]; $i++; }

Posté : 30 nov. 2006, 12:53
par albat
C'est un problème de modélisation.
Chaque champ d'un enregistrement ne peut acueillir qu'une seule valeur.

Posté : 30 nov. 2006, 12:57
par fred9999
tu es sur albat ???
Dans ce cas pkoi créer des listes à choix multiples???

Pensant que tu as rarement tort ... albator :lol:
je sais pas trop.

Posté : 30 nov. 2006, 13:00
par jojolapine
le sliste à choix multiples, servent à remplir plusieurs champs, ou alors des champs de types text, où les valeurs sont mises bout à bout.

Posté : 30 nov. 2006, 13:16
par pixfacto
Il s'agit d'une insertion "classique" via un formulaire.

Dans mon formulaire j'ai un menu déroulant dans lequel je peux sélectionner plusieurs valeurs à la fois.
Je souhaite que les valeurs sélectionnées soit insérées dans le champ de ma table.

jour1 doit pouvoir avoir plusieurs valeurs.
 $insertSQL = sprintf("INSERT INTO event (id_event, jour1, mois1, annee1, jour2, mois2, annee2, titre, commentaire, lieu, lien, type) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['id_event'], "int"),
                       GetSQLValueString($_POST['jour1'], "int"),
                       GetSQLValueString($_POST['mois1'], "text"),
                       GetSQLValueString($_POST['annee1'], "int"),
                       GetSQLValueString($_POST['jour2'], "int"),
                       GetSQLValueString($_POST['mois2'], "text"),
                       GetSQLValueString($_POST['annee2'], "int"),
                       GetSQLValueString($_POST['titre'], "text"),
                       GetSQLValueString($_POST['commentaire'], "text"),
                       GetSQLValueString($_POST['lieu'], "text"),
                       GetSQLValueString($_POST['lien'], "text"),
                       GetSQLValueString($_POST['type'], "int"));
formulaire :

Code : Tout sélectionner

<select name="jour1" size="4" multiple="multiple" id="jour1"> <option value="1" selected="selected">1</option> <option value="2">2</option> ...
Merci

Posté : 30 nov. 2006, 13:19
par jojolapine
fait un print_r($_POST['jour1']);
tu comprendras ton erreur...

Posté : 30 nov. 2006, 13:22
par albat
Le principe d'un champ de type enum est de proposer plusieurs valeurs,
mais une seule n'est finalement enregistrée dans la table.

exemple :
  • champ : civilité
  • type : enum
  • valeurs : ['monsieur', 'madame', 'mademoiselle']
Une seule des valeurs proposées (et aucune autre) pourra être enregistrée.

Posté : 30 nov. 2006, 14:32
par Hermès
il me semble que dans le cas d'une liste à choix multiples, tu récupères un tableau de valeurs.

Posté : 30 nov. 2006, 14:48
par fred9999
Meme a 2 contre albat

je sais pas si on fait le poids :cry:

Posté : 30 nov. 2006, 15:44
par albat
Aaaaaah, compris !
On ne parlait pas de la même chose ! :roll:

En fait, la question de pixfacto mélange deux choses :
- l'utilisation d'un select autorisant plusieurs choix (attribut "multiple")
- l'utilisation de champs de type SET ou ENUM dans une BD

Pour ma part, j'ai répondu à la 2e sous-question.

Rappelons à toutes fins utiles que, pour recevoir une réponse appropriée,
une question se doit d'être posée clairement... ;)