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

PHP & Base de données Discussion :

Select multiple pré-sélectioné selon requête SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Select multiple pré-sélectioné selon requête SQL
    Bonjour,

    Je suis en train de réaliser un formulaire de modification de données. Je souhaite que les données du formulaire soient pré-remplies selon le contenu de la base de données. J'ai réussi à le faire pour tous les champs sauf pour mes listes à sélection multiple : je n'arrive a sélectionner qu'une seule ligne (la dernière) alors que je voudrais arriver à sélectionner toutes les lignes correspondantes à ma requête.
    Je précise que ma liste à choix multiple est créée à partir d'une requête.

    Voici la partie de code concernée :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    $result=mysql_query("SELECT beneficiaire.cp_benef, beneficiaire.nom_benef, destiner.ce_aide  FROM beneficiaire, destiner WHERE beneficiaire.cp_benef=destiner.ce_benef AND ce_aide= '" . $id_aide . "' ");
     
     
    while ($row = mysql_fetch_array($result))
    	{			
    		$Liste_benef = array() ;	
    		$Liste_benef = $row["cp_benef"];
    	}
     
    for ($i=0; $i<count($Liste_benef); $i++) 
     
     
    echo "<form name=\"modif_aide\"  action=\"maj_aide.php\" method=\"GET\">";
     
     
     
    echo"<select name=\"nom_benef[]\" multiple=\"multiple\">";
     
     
    $result=mysql_query("SELECT cp_benef, nom_benef  FROM beneficiaire ");
     
     
    while ($row = mysql_fetch_array($result))
    	{
     
    	       ?>
     
    	       <option value="<?php echo $row["cp_benef"]; ?>"
     
    		<?php	
     
    		for ($i=0; $i<count($Liste_benef); $i++)
    			 {						
                                   if ($Liste_benef[$i]==$row["cp_benef"])
     
    	                          { 
    		                      echo 'selected' ;
    	                           } 
     
                             }
     
                               ?>
     
                               > 
     
                            <?php echo $row["nom_benef"]; ?></option>
     
                          <?php
             }	
     
    echo "</select>";
     
     
    echo "<input type=\"submit\" value=\"Modifier\">";
     
    echo "</form>";
    Je vous remercie par avance de vos réponses.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sans regarder tout le code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($row = mysql_fetch_array($result))
    {
    $Liste_benef = array() ; // $liste_benef est un tableau vide
    $Liste_benef = $row["cp_benef"]; //$liste_benef est une valeur fixe
    }
    tu ne voulais pas plutot ecrire cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $Liste_benef = array() ; // $liste_benef est un tableau vide
    while ($row = mysql_fetch_array($result))
    {
    $Liste_benef[] = $row["cp_benef"]; // ajoute $row["cp_benef"] au tableau
    }
    Et sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ($i=0; $i<count($Liste_benef); $i++)
    			 {						
                                   if ($Liste_benef[$i]==$row["cp_benef"])
     
    	                          { 
    		                      echo 'selected' ;
    	                           } 
     
                             }
    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach ($Liste_benef as $value) {
               if ($value==$row["cp_benef"])
     
    	                          { 
    		                      echo 'selected="selected"' ;
    	                           } 
     
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Ok, merci. Je vais essayer.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Cette méthode me donne le même résultat : seulement la dernière ligne est sélectionnée.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire a la fin de ton code un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r ($Liste_benef);
    et me dire ce que cela te donne ?

    Et me redonner le code tel qu'il est maintenant ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    ça me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => 1 [1] => 2 [2] => 3 )
    et voici mon code :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
    		$result=mysql_query("SELECT beneficiaire.cp_benef, beneficiaire.nom_benef, destiner.ce_aide  FROM beneficiaire, destiner WHERE beneficiaire.cp_benef=destiner.ce_benef AND ce_aide= '" . $id_aide . "' ");
     
     
    		$Liste_benef = array() ; // $liste_benef est un tableau vide
     
    		while ($row = mysql_fetch_array($result))
    			{
    				$Liste_benef[] = $row["cp_benef"]; // ajoute $row["cp_benef"] au tableau
    			}
     
     
    		for ($i=0; $i<count($Liste_benef); $i++) 
     
     
     
    		echo "<form name=\"modif_aide\"  action=\"maj_aide.php\" method=\"GET\">";
     
     
     
    		echo"<select name=\"nom_benef[]\" multiple=\"multiple\">";
     
     
    		$result=mysql_query("SELECT cp_benef, nom_benef  FROM beneficiaire ");
     
     
    		while ($row = mysql_fetch_array($result))
    			{
     
    				?>
     
    				<option value="<?php echo $row["cp_benef"];?>"
     
    				<?php	
     
    				foreach ($Liste_benef as $value) 
    					{
    						if ($value==$row["cp_benef"])
     
    	                        { 
    								echo 'selected="selected"' ;
    	                        } 
     
    					}
     
     
    				?>
     
    				> 
     
    				<?php echo $row["nom_benef"]; ?></option>
     
    				<?php
    			}	
     
    		echo "</select>";
     
    		echo "<input type=\"submit\" value=\"Modifier\">";
     
    		echo "</form>";
     
    		print_r ($Liste_benef);

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Hum je vois pas ...

    Fais pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach ($Liste_benef as $value)  {
            echo '<p>' . $row["cp_benef"] . '-' . $value . '</p>';
     
    	if ($value==$row["cp_benef"]) { 
    		echo ' selected="selected"' ;
    	} 
     
    }
    Sinon regarde le code HTML que cela te donne pour le SELECT, il y a peut etre une faute qu'on a raté.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Autant pour moi, c'est bon, le dernier code que j'ai posté fonctionne.

    Merci beaucoup de m'avoir aidé, et aussi rapidement en plus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/07/2011, 20h11
  2. Récupération des valeurs select multiple sans sélection
    Par akara dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 17/07/2007, 19h10
  3. [MySQL] select multiple à reporter dans une requête
    Par PatBateman dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 07/03/2007, 14h05
  4. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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