IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Insérer valeurs issues d'une liste à choix multiple


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Insérer valeurs issues d'une liste à choix multiple
    Bonjour,

    Je voudrais insérer plusieurs valeurs dans des champs
    d'une table de ma base mysql.

    Les valeurs sont issues d'une liste de sélection à choix multiple.

    Ma question : comment coder pour avoir une valeur par champ et non pas toutes les valeurs dans un seul champ comme c'est le cas ?

    ex : je choisis dans ma liste pomme, carotte, poire, navet

    les données une fois insérés :
    id_user fruit legume
    1 pomme carotte
    1 poire navet

    Je met le même id_user (récupérer d'une autre table) sur chaque enregistrement pour associer l'utilisateur à ces données.

    Pour le moment j'arrive à récupérer les valeurs de la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(isset($_POST['liste2']) && !empty($_POST['liste2'])){
       $Col1_Array = $_POST['liste2'];
       print_r($Col1_Array);
       foreach($Col1_Array as $selectValue)
       {
    //affichage des valeurs sélectionnées pour vérifier leur existance pour le test.
         echo $selectValue."<br>";  
        }
    }
    Exemple de valeurs récupérées :
    Array ( [0] => pomme [1] => poire [2] => carotte [3] => navet

    Je ne sais pas exploiter ce genre de résultat.

    Merci pour votre aide. (4 jours que je cherche )

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par arthuro45 Voir le message
    Bonjour,
    Merci pour votre aide. (4 jours que je cherche )
    Bonjour et bienvenue

    Impossible de te répondre sans connaitre ta structure de table MySql

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CREATE TABLE IF NOT EXISTS `z_user` (
      `LeindexMdp` smallint(5) unsigned NOT NULL auto_increment,
      `LeNom` char(15) NOT NULL default '',
      `LeMdp` char(15) NOT NULL default '',
      `LeMail` char(40) default NULL,
      `LeNomOK` char(30) default NULL,
      PRIMARY KEY  (`LeindexMdp`),
      UNIQUE KEY `LeNom` (`LeNom`),
    ) TYPE=MyISAM AUTO_INCREMENT=3 ;

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Voici la structure de ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE `utilisateurs_sites` (
      `id_utilisateurs_sites` int(25) NOT NULL auto_increment,
      `id_user` int(25) NOT NULL,
      `fruit` varchar(255) NOT NULL,
      `legume` varchar(255) NOT NULL,
      PRIMARY KEY  (`id_utilisateurs_sites`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Données utilisateurs' AUTO_INCREMENT=86 ;

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par arthuro45 Voir le message
    Voici la structure de ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE `utilisateurs_sites` (
      `id_utilisateurs_sites` int(25) NOT NULL auto_increment,
      `id_user` int(25) NOT NULL,
      `fruit` varchar(255) NOT NULL,
      `legume` varchar(255) NOT NULL,
      PRIMARY KEY  (`id_utilisateurs_sites`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Données utilisateurs' AUTO_INCREMENT=86 ;
    OK ça c'est bien mais il manque une clé unique ?
    d'autre part pourquoi deux codes user ?

    Par ailleur peux tu mettre juste le FORM de saisie de ta page
    et nous dire
    1) si c'est le même PHP qui saisi et qui récupére les saisies ?
    2) chaque utilisateur peuvent avoir plusieurs fruits ET plusieurs legumes ?

    merci

  5. #5
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    J'ai enlevé id_utilisateurs_sites mais je ne sais pas ou mettre la clé unique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE `utilisateurs_sites` (
      `id_user` int(25) NOT NULL,
      `fruit` varchar(255) NOT NULL,
      `legume` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Données utilisateurs';

    Voici le FORM :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <form name="form2" id="form2"  action="" method="post">
    <?php 
    include('connection.inc.php'); 
      if(isset($_POST['liste2']))
    		{$liste2=$_POST['liste2'];}
    		else{$liste2=-1;	} 
     
    ?>
    <select name="liste2[]" id="liste2" multiple size="14">
    <option value=-1></option> 
    <?php
    $req3 = mysql_query("SELECT dpt FROM sites GROUP BY dpt ORDER BY dpt");
    while($dpt = mysql_fetch_array($req3)) 
     {
    		//Liste déroulante
    		echo "<option value=\"".$dpt["dpt"]."\"";
    		if($liste2==$dpt['dpt']) { echo "selected"; }
    		echo ">".$dpt['dpt']."</option>\n";
      } 
    ?>
    </select></p>
    <p class="submit"><button type="submit" value="Submit"  id="valider" name="valider" onclick="javascript: if (confirm('Voulez-vous continuer ?')) return true; else return false; "/> Valider </button></p>
    </form>
    si c'est le même PHP qui saisi et qui récupére les saisies ?

    Si tu veux savoir si tous ce trouve dans le même script la réponse et oui, le select multiple, la récupération des saisies et la requête d'insertion sont dans le même script.

    chaque utilisateur peuvent avoir plusieurs fruits ET plusieurs legumes ? OUI

    Merci à toi.

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Je réédites aprés control

    Ta saisie ne comprend qu' un select ne permettant de saisir qu' un élément a la fois !

    Ces éléments viennent d'une table dont je ne connait rien , c' est quoi dpt ??

    dans la saisie aucune notion de user !

    Bref rien ne correspond a ta question,

    Reviens poser une nouvelle question quand tu auras un PHP établi clairement et que tu voudras que nous t'aidions a le finaliser.

    Notre but est d'aider, mais pour cela il te faut apprendre le minimum.
    et construire ton projet pour cela tu as chez nous des aides trés bien faites.

    Bon courage

  7. #7
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Avec le nombre d'heures de recherche que j'ai passé sur ce problème, j'ai remarqué que c'était un problème récurrent chez les débutants comme moi, et curieusement il y a très peu de réponses sur le sujet, à moins que mes mots clés dans google ne soient pas les bons.

  8. #8
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Après une bonne nuit je vais revoir ma copie. Je remet tous dans l'ordre et je reviens

    (il est vraiment tant que je développe en ajax)

    Merci quand même pour avoir pris le temps de m'aider. Bonne journée

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/07/2014, 20h10
  2. Récupérer les valeur d'une liste à choix multiple
    Par steeveb dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/04/2012, 08h26
  3. [AC-2007] Valeur de listbox.ListIndex dans une liste à choix multiples
    Par Cinesra dans le forum VBA Access
    Réponses: 12
    Dernier message: 12/10/2011, 15h56
  4. [AC-2007] Remplacement de valeurs dans une liste à choix multiples
    Par Cinesra dans le forum Modélisation
    Réponses: 1
    Dernier message: 21/07/2011, 15h47
  5. Réponses: 3
    Dernier message: 12/05/2009, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo