Mettre plusieurs valeurs récupérées dans une cellule tableau [Fermé]

Signaler
-
Messages postés
4263
Date d'inscription
jeudi 19 août 2010
Statut
Modérateur
Dernière intervention
3 août 2016
-
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

Messages postés
119
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
16 avril 2018
6
montre moi ton code stp

J'ai pas fait le code, c juste pour savoir si c'est possible car j'ai jamais fait
Messages postés
119
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
16 avril 2018
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

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.
Messages postés
119
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
16 avril 2018
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----]
Utilisateur anonyme
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
Messages postés
119
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
16 avril 2018
6
a mon avis avec la fonction foreach() et array() tu devrais y arrivé :)

jette un coup d'oeil :
http://www.phpdebutant.org/article11.php
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
880
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
}
Utilisateur anonyme
J'utilise pas la table spécialité?
Messages postés
4263
Date d'inscription
jeudi 19 août 2010
Statut
Modérateur
Dernière intervention
3 août 2016
163
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.
Utilisateur anonyme
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é?
Messages postés
4263
Date d'inscription
jeudi 19 août 2010
Statut
Modérateur
Dernière intervention
3 août 2016
163
A priori si tu fais bien ta jointure et que tu parcours le tableau avec une boucle foreach, ça devrait passer!