Mettre plusieurs valeurs récupérées dans une cellule tableau

natier -  
Bionik Messages postés 4232 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je voudrais alimenter mon tableau avec des données récupérées dans une base de données. Sa je sais faire, il s'agit d'une requête sql. Mon problèmes c'est pour mettre plusieurs valeurs dans une cellules.

Voici le cas:

Il s'agit de la gestion de stage. Un stage peut avoir plusieurs spécialité et une spécialité pour plusiseurs stage. Dans ma bdd j'ai une table spécialité, une table stage et une associative specialité-stage.
Ce que je voudrai c'est pouvoir mettre toute mes spéclalités du stage dans une même cellule dans mon tableau. Cela m'évitera d'avoir 10 lignes pour le même stage mais avec des spécialités différentes.

Merci de votre aide

7 réponses

  1. Flo313Z Messages postés 127 Statut Membre 6
     
    montre moi ton code stp
    0
  2. natier
     
    J'ai pas fait le code, c juste pour savoir si c'est possible car j'ai jamais fait
    0
  3. Flo313Z Messages postés 127 Statut Membre 6
     
    je comprend pas tout ...
    arrête moi si je me trompe ...

    en faite tu veux faire un tableau avec des cases que change en fonction de ...

    pas compris XD
    0
  4. natier
     
    Je ve faire un tableau qui va chercher les caractéristiques dans la bdd (code, libelle, date début, date fin, spécialité). Mais un stage peut avoir plusieurs spécialité et une spécialité peut être pour plusiseurs. Donc dans ma base j'ai trois table: stage, spécialité et associative stage-spécialité. Je voudrai éviter d'avoir 10 lignes pour le même stage avec des spécialités différentes dans mon tableau. Je veux une seule ligne par stage et s'il y a plusieurs spécialités, je ve les mettre dans la même cellule.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Flo313Z Messages postés 127 Statut Membre 6
     
    dit moi si je me trompe
    ton problème tableau :
    [code, libelle, date début, date fin, spécialité]
    [www, www, wwwwww, wwwww, ----1----]
    [xxxx, xxxxx, xxxxxxxxxx, xxxxxxxx, ----1----]
    [yyyy, yyyyy, yyyyyyyyyy, yyyyyyyy, ----2----]
    [zzzz, zzzzz, zzzzzzzzzz, zzzzzzzz, ----1----]

    ta solutiontableau :
    [www, www, wwwwww, wwwww, ----1----]
    [xxxx, xxxxx, xxxxxxxxxx, xxxxxxxx, ----1----]
    [zzzz, zzzzz, zzzzzzzzzz, zzzzzzzz, ----1----]
    [yyyy, yyyyy, yyyyyyyyyy, yyyyyyyy, ----2----]
    0
    1. natier
       
      mon tableau qui est
      code, libelle, date début, date fin, spécialité
      xxxx, xxx, xxxx, xxxx, 1
      xxxx, xxx, xxxx, xxxx, 2
      yyyy, yyy, yyyy, yyyy, 1

      je veut que sa soit ça:
      code, libelle, date début, date fin, spécialité
      xxxx, xxx, xxxx, xxxx, 1 - 2
      yyyy, yyy, yyyy, yyyy, 1
      0
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    ou alors avec plusieurs requetes

    <?php
    //.....
    $sql1="SELECT * FROM ta_table_stage GROUP BY code";
    $result_stages=mysql_query($sql1);
    
    while($stage=mysql_fetch_assoc($result_stages)){
    	echo '<tr>';
    	echo '<td>'.$stage['code'].'</td>';
    	echo '<td>'.$stage['libelle'].'</td>';
    	//etc.. pour les colonnes stage
    	
    	$sql2="SELECT * FROM ta_table_association_stage_spec WHERE ton_champ_code_stage='".$stage['code']."' ";
    	$result_spec=mysql_query($sql2);
    	echo '<td>'; //colonne specialités
    	$cpt=1;
    	while($spec=mysql_fetch_assoc($result_spec)){
    		//gestion saut de ligne à l'interieur du td
    		if($cpt >1) echo '<br />';
    		//affichage spécialités
    		echo $spec['champ_nom_specialite'];
    				
    		$cpt++;
    	
    	}
    	echo '</td>'; //fin colonne spécialités
    	
    	echo '</tr>'; //fin ligne
    }
    0
    1. natier
       
      J'utilise pas la table spécialité?
      0
  8. Bionik Messages postés 4232 Date d'inscription   Statut Modérateur Dernière intervention   185
     
    Salut,

    Tout d'abord tu dois faire une jointure entre tes différentes tables dans une requête SQL ensuite parcourir le résultat dans une boucle foreach et les afficher dans le tableau.
    0
    1. natier
       
      si je parcours les résultats, sa va bien m'afficher toute les spécialité pour le même stage dans une seule cellule et non une ligne pour chaque spécialité?
      0
    2. Bionik Messages postés 4232 Date d'inscription   Statut Modérateur Dernière intervention   185
       
      A priori si tu fais bien ta jointure et que tu parcours le tableau avec une boucle foreach, ça devrait passer!
      0