Récupérer les valeurs liste selection multipl

Fermé
TDR - 14 mars 2010 à 19:07
 TDR - 15 mars 2010 à 18:32
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
:)

10 réponses

avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
14 mars 2010 à 20:05
« les valeurs liste selection multiple »
??
0
Les valeurs d'une liste de selection de type multiple
0
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
14 mars 2010 à 21:02
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.
0
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
:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
14 mars 2010 à 22:40
Tu saurais être plus clair ?
0
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.
0
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
15 mars 2010 à 17:44
Maintenant c'est clair :)
Le mieux est que tu montres ton code pour que je vois où est le problème.
0
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)
0
avion-f16 Messages postés 19125 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 23 mars 2023 4 468
15 mars 2010 à 18:28
Dans la deuxième while, utilise $row2 au lieu de $row.
Ou plus clair : $rowCompetences
0
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 :)
0