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

Fermé
Utilisateur anonyme - 16 mars 2013 à 23:51
Bionik Messages postés 4234 Date d'inscription jeudi 19 août 2010 Statut Modérateur Dernière intervention 3 août 2016 - 18 mars 2013 à 19:04
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

A voir également:

7 réponses

Flo313Z Messages postés 119 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 16 avril 2018 6
17 mars 2013 à 08:51
montre moi ton code stp
0
Utilisateur anonyme
17 mars 2013 à 10:30
J'ai pas fait le code, c juste pour savoir si c'est possible car j'ai jamais fait
0
Flo313Z Messages postés 119 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 16 avril 2018 6
17 mars 2013 à 12:38
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
Utilisateur anonyme
17 mars 2013 à 12:53
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

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

Posez votre question
Flo313Z Messages postés 119 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 16 avril 2018 6
17 mars 2013 à 15:34
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
Utilisateur anonyme
17 mars 2013 à 17:22
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
Flo313Z Messages postés 119 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 16 avril 2018 6
18 mars 2013 à 00:17
a mon avis avec la fonction foreach() et array() tu devrais y arrivé :)

jette un coup d'oeil :
http://www.phpdebutant.org/article11.php
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 mars 2013 à 08:30
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
Utilisateur anonyme
18 mars 2013 à 18:43
J'utilise pas la table spécialité?
0
Bionik Messages postés 4234 Date d'inscription jeudi 19 août 2010 Statut Modérateur Dernière intervention 3 août 2016 183
18 mars 2013 à 16:13
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
Utilisateur anonyme
18 mars 2013 à 18:44
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
Bionik Messages postés 4234 Date d'inscription jeudi 19 août 2010 Statut Modérateur Dernière intervention 3 août 2016 183
18 mars 2013 à 19:04
A priori si tu fais bien ta jointure et que tu parcours le tableau avec une boucle foreach, ça devrait passer!
0