bonjours à tous.

Un amis m'a demandé de lui créer un petit programme pour le célèbre jeu WARHAMMER. Ce script consiste à la création d'une fiche dites fiches de bandes.

comme vous pouvez vous en douter j'ai plusieurs tables.
pour afficher les éléments de la fiche de bande je fait appelle à plusieurs d'entre elles.
Afin que vous puisiez m'aider voici quelques éléments d'explications :
warhammer est un jeu de plateau constituer de PERSONNAGES. chaque personnage fait partie d'une RACE. Il existe plusieurs type de personnage : les héros et les hommes de mains. Chaque personnage a des CARACTERISTIQUES et des COMPETENCES.
jusque la rien de difficile !
Chaque personnages fait partie d'une bande ( selon sa race : on ne peut pas créer une bande avec des races multiples ). Donc jusqu'à présent ont à :
des bandes constituée de personnages qui font partie d'une race. Lorsque les personnages font partie d'une bande, les joueurs (ou utilisateurs) l'affuble d'un pseudo. A chaque fois qu'une partie est jouée, le personnage subit des événements (un bras cassé, augmentation de l’expérience...etc !!). et c'est la que j'ai des problèmes.

en effet lorsque je veux afficher ma bande je fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
$requete=" SELECT
bandes.*,
personnages.*,
pseudos.*
FROM personnages,pseudos,bandes,perso_pseudo
WHERE  personnages.id=perso_pseudo.id_perso
and pseudos.id=perso_pseudo.id_pseudo
and bandes.id=$bande_id
group by perso_pseudo.id_pseudo";
 
// on execute la requete
$result = mysql_query($requete) or 
die('Echec de requête ligne : '.__LINE__.'<br />
avec la requête : '.$requete.'<br />.
avec le message : '.mysql_error()
);
 
//on recupere le resultat de la requete
$compte= mysql_num_rows($result);
 
//on teste si on recupere des enregistrements
//si la table est vide
if ($compte==0){
echo ' Il n\'y a actuellement aucuns soldats dans cette bande. Désirez-vous en <a href="creerBandes.php">créer</a> une ?'; 	
}else{
//si la table contient au moins un enregistrement, on l'affiche.
while ($detailbande=mysql_fetch_array ($result)){	
	$bande_id=$detailbande['id'];
	$bande_nom=$detailbande['nom_bande'];
	$bande_nom_perso=$detailbande['nom'];
	//$bande_userId=$detailbande['user_id'];
	//$bande_valeur=$detailbande['valeur'];
	$bande_perso_id=$detailbande['id'];
	$bande_pseudoPerso=$detailbande['libelle_pseudo'];
	$bande_pseudoDescription=$detailbande['histoire_pseudo'];
	$bande_pseudoM=$detailbande['mouvement'];
	$bande_pseudoCC=$detailbande['capacite_combat'];
	$bande_pseudoCT=$detailbande['capacite_tir'];
	$bande_pseudoF=$detailbande['force'];
	$bande_pseudoE=$detailbande['endurance'];
	$bande_pseudoPV=$detailbande['point_de_vie'];
	$bande_pseudoI=$detailbande['initiative'];
	$bande_pseudoA=$detailbande['attaque'];
	$bande_pseudoC=$detailbande['commendemant'];
	$bande_pseudoXptotal=$detailbande['xp_total'];
	$bande_pseudoCoutTotal=$detailbande['cout_total'];
	$bande_persoCoutBase=$detailbande['cout_base'];
	$bande_persoXp_base=$detailbande['experience_base'];
 
 
?>
<ul>
  <!--case 1 -->       
 <li><?php echo $bande_pseudoPerso; ?></li>
 <li>XP de base : <?php echo $bande_persoXp_base; ?></li>
 <li>XP total : <?php echo $bande_pseudoXptotal; ?></li>
 <li><?php echo $bande_pseudoDescription; ?></li>
 
 <li><?php echo $bande_dateEvenement; ?></li>
 <li><?php echo $bande_libelleEvenement; ?></li>
 
 <!-- case 2 -->
 <li><?php echo $bande_nom_perso; ?></li>
 <li>M : <?php echo $bande_pseudoM; ?></li>
 <li>CC : <?php echo $bande_pseudoCC; ?></li>
 <li>CT : <?php echo $bande_pseudoCT; ?></li>
 <li>F : <?php echo $bande_pseudoF; ?></li>
 <li>E : <?php echo $bande_pseudoE; ?></li>
 <li>PV : <?php echo $bande_pseudoPV; ?></li>
 <li>I : <?php echo $bande_pseudoI; ?></li>
 <li>A : <?php echo $bande_pseudoA; ?></li>
 <li>C : <?php echo $bande_pseudoC; ?></li>
 <li>cout de base : <?php echo $bande_persoCoutBase; ?></li>
 </ul>
</section><!-- fermeture de la section descrptif-->
</div><!-- fermeture de la div center-->
 
<?php } }?>
donc ce code m'affiche bien tout mes personnages qui sont dans la bande sélectionnée. par contre un personnage qui a un pseudo ( puisqu'il fait partie d'une bande) peux avoir 1 ou n événements lié à l'action du jeu. Bien sur dés que je veux les afficher je n'arrive à en affiché qu'un par personnage.

voici le code que j'ai écrit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php 
 
//voir tout les evenements de la bande classé par pseudo
$requete_evenements="select distinct evenements.*
from bandes,evenements,personnages,pseudos,perso_pseudo
where evenements.id=perso_pseudo.id_evenement
and bandes.id=$bande_id
order by id_pseudo";
 
// on execute la requete
$result_evenements = mysql_query($requete_evenements) or 
die('Echec de requête ligne : '.__LINE__.'<br />
avec la requête : '.$requete_evenements.'<br />.
avec le message : '.mysql_error()
);
 
//on recupere le resultat de la requete
$compte_evenements= mysql_num_rows($result_evenements);
 
//on teste si on recupere des enregistrements
//si la table est vide
if ($compte_evenements==0){
echo ' Il n\'y a actuellement aucuns événements dans cette bande. Désirez-vous en <a href="creerBandes.php">créer</a> un ?'; 	
}else{
//si la table contient au moins un événement, on l'affiche.
while ($evenementbande=mysql_fetch_array ($result_evenements)){
$bande_dateEvenement=$evenementbande['date'];
$bande_libelleEvenement=$evenementbande['libelles'];
} }
?>
Alors j'ai tenté de faire qu'une seule requette avec celle ci et celle du dessus, de les imbriquer, de les séparer rien n'y fait.
A l'heure actuelle, ma dernière requête est située au dessus de la première.

mon objectif est d'afficher les éléments de ma fiche de bande en sachant qu'un personnage peut avoir 1 ou n événements et que j'ai besoin d'afficher tout les événements lié a chaque personnage de la bande.

merci de votre aide !