Récupérer les valeurs liste selection multipl

Bonjour,
Je cherche à récupérer les valeurs liste selection multiple via des tables sql et l'utilisation de phpPour infos,
Pour info: J'ai 3 tables: 1 fiches, 1 compétences, 1 jointure.
J'arrive à afficher la liste des compétences mais le problème est que la liste de compétences (que j'affiche via 3 boucles while) s'affiche sur toutes les fiches.
Exemple: fiche 1: 1,2,5,9,7. fiche 2: 1,2,5,9,75,6,1,8,7,9
Du coup j'ai un problème lors de l'affichage des compétences, j'ai bien penser à mettre un DISTINCT mais ça ne marche pas non plus >.>
Sinon peu être changer de boucle? parceque j'ai 2 while dans 1 while... hmm...
Je n'en sais rien, je cherche encore.

Merci pour vos réponse
:)
Configuration: Windows 7 / Firefox 3.5.8

10 réponses

  1. Dans le name, ajoutes des crochets à la fin.
    Exemple :
    <select name="nomListe[]" multiple="multiple">
    Ainsi, $_POST['nomListe'] sera un array avec autant d'entrée que de choix.
    1. Tu n'a pas compris ma requete.
      Mon probleme est le suivant:
      http://img534.imageshack.us/img534/8997/capt1x.png
      http://img694.imageshack.us/img694/2879/capt2.png

      Comme ont peux le voir, lors de l'affichage de la liste des competences de chaque fiche via une boucle while. Celles ci ceux retrouve coller les unes aux autres...

      Merci pour vos réponses
      :)
      1. Donc,
        J'ai une page d'affichage de fiche pour un portofolio.
        Chaque fiches de cette page contient des compétences qui sont gérer dans une table jointe de ma bdd.
        Mon problème est que lors de l'affichage des compétences de chaque fiches via une boucle while.
        Les compétences de la fiche 1 se retrouvent ajouter à la fiche 2, etc, etc...
        Comme ont peux le voir ici:
        Fiche 1
        http://img534.imageshack.us/img534/8997/capt1x.png
        Fiche 2
        http://img694.imageshack.us/img694/2879/capt2.png

        Je ne comprend pas pourquoi elles s'ajoute aux autres fiches... peut être (voir surement) parceque j'ai deux boucles while à l'intérieur d'une.

        J'espere avoir été plus clair.
        Merci pour vos réponses.
        1. Maintenant c'est clair :)
          Le mieux est que tu montres ton code pour que je vois où est le problème.
          1. Le voici:
            	// All users ordered by user_name column
            	$sql->db_Select("portofolio_references", "*", "ORDER BY portofolio_ref_id ASC LIMIT 0,4", "no-where");
            	while($row = $sql->db_Fetch()) {
            		$id_fiche = $row[0];
            		$image_grosse_aff = "<img src='".e_PLUGIN."portofolio/upload/".$row[1]."' alt='' style='width:350px;height:300px;' />";
            		$image_petite1_aff = "<img src='".e_PLUGIN."portofolio/upload/".$row[2]."' alt='' style='width:185px;height:149px;border-left:1px solid #fff;' />";
            		$image_petite2_aff = "<img src='".e_PLUGIN."portofolio/upload/".$row[3]."' alt='' style='width:185px;height:150px;border-left:1px solid #fff;border-top:1px solid #fff;' />";
            		$titre_aff = $row[4];
            		$contenu_aff = $row[5]; 
            		$lien_site_aff = "<a href='http://".$row[6]."' title='Vistez le site' target='_blank'><img src='".e_PLUGIN."portofolio/images/visitez_le_site.png' alt='Lien fiche' /></a>";
            		$tech_aff = $row[7];
            				
            		// je ramene les id des compétences du membre
            		$query_l_competences = "SELECT portofolio_references_portofolio_ref_id, portofolio_competences_portofolio_comp_id 
            									FROM ".MPREFIX."portofolio_references_has_portofolio_competences 
            										WHERE portofolio_references_portofolio_ref_id='$id_fiche'";								
            		$result_l_competences = mysql_query($query_l_competences) OR DIE (mysql_error());
            
            		while($row = mysql_fetch_row($result_l_competences)){
            			$id_competences_collaborateur = $row[0];
            			$id_competences_liste = $row[1];	
            			
            			$comp_list .= $id_competences_liste.",";
            		}
            		
            		// on place le resultat dans une variable et on enleve le dernier caractere
            		$comp_list = rtrim($comp_list,",");
            
            		// je ramene les noms des competences du membre
            		$query_competences = "SELECT portofolio_comp_id, portofolio_comp_nom, portofolio_comp_libelle 
            								  FROM ".MPREFIX."portofolio_competences 
            									  WHERE portofolio_comp_id IN ($comp_list)";
            		$result_competences = mysql_query($query_competences) OR DIE (mysql_error());
            
            		while($row = mysql_fetch_row($result_competences)){
            			$id_competences = $row[0];
            			$nom_competences = $row[1];
            			
            			$noms_comp .= "<li>$nom_competences</li>";
            		}
            		
            		// $Description = $tp->toFORM($tp->html_truncate($download_description, 230, "..."));
            		
            		$contenu .= "
            			<div class='panel' title='Fiche $id_fiche'>
            				<div class='wrapper'>
            					<div style='float:left;margin:0;padding:0 0px 0 0;width:350px;'>
            						$image_grosse_aff
            					</div>
            					<div style='float:left;margin:0;padding:0;width:185px;'>
            						$image_petite1_aff
            						$image_petite2_aff
            					</div>
            					<div style='float:left;width:350px;'>
            						<h3>$titre_aff</h3>
            						<p>
            							$contenu_aff
            							$lien_site_aff<br />$comp_list
            						<p>
            					</div>
            					<div style='float:left;width:185px;'>
            						<h3>Comp&eacute;tences utiliser:</h3>
            						<div class='checkList'>
            						<ul class='check'>
            							$noms_comp
            						</ul>
            					</div>
            				</div>
            				</div>
            			</div>	
            		";
            	}


            Note la premiere requete est un select fait avec e107 (cms)
            1. Dans la deuxième while, utilise $row2 au lieu de $row.
              Ou plus clair : $rowCompetences
              1. Je viens de le faire et ça ne change rien, j'ai donner un $row différent pour chacune des boucles: $row $row2 $row3
                Cela dis s'étais une bonne idée :)