Bonjour à tous, je suis nouveau sur ce forum, mais j'ai déjà eu l'occasion de le visiter plusieurs fois, aujourd'hui je viens vers vous car j'ai un problème pour mon script.
Alors voilà, je suis en train de développer un site (extranet) qui aura pour but principal de gérer les notes des étudiants. J'ai une base de données avec plusieurs tables pour gérer une arborescence. Je n'arrive pas à afficher l'arborescence comme je le voudrais.
Pour ce qui est de mes tables voici l'organisation:

formations
nom | id
semestres
nom | id | idp
ue
nom | id | idp

idp étant l'id précédent pour remonter dans l'arborescence.
Le problème vient de mes boucles while, la première boucle fonctionne bien, mais la deuxième ne fonctionne que la première fois.
J'arrive à faire fonctionner la deuxième boucle en refaisant la requête à chaque fois, mais je dois imbriquer 5 boucles, alors refaire à chaque fois les requêtes ça risque de surcharger le serveur.
code fonctionnant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$sql1=mysql_query($req1) or die('Erreur SQL !');
while($data1=mysql_fetch_assoc($sql1)){
		if($data1['idp'] == $data['id']) echo "<tr><td><pre>\t$data1[nom]</pre></td></tr>";
	}
Voici mon code:
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
<?php
include('config.php');
 
$req="SELECT * FROM `formations` ORDER BY `nom`";					
$sql=mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
$req1="SELECT * FROM `semestres` ORDER BY `nom`";					
$sql1=mysql_query($req1) or die('Erreur SQL !<br>'.$req1.'<br>'.mysql_error());
$req2="SELECT * FROM `ue`";					
$sql2=mysql_query($req2) or die('Erreur SQL !<br>'.$req2.'<br>'.mysql_error());
$req3="SELECT * FROM `modules` ORDER BY `nom`";					
$sql3=mysql_query($req3) or die('Erreur SQL !<br>'.$req3.'<br>'.mysql_error());
$req4="SELECT * FROM `matieres` ORDER BY `nom`";					
$sql4=mysql_query($req4) or die('Erreur SQL !<br>'.$req4.'<br>'.mysql_error());
 
 
echo "<table>";
while($data=mysql_fetch_assoc($sql)){
	echo "<tr><td><pre>$data[nom]</pre></td></tr>";
	while($data1=mysql_fetch_assoc($sql1)){
		if($data1['idp'] == $data['id']) echo "<tr><td><pre>\t$data1[nom]</pre></td></tr>";
	}
}
echo "</table>";
mysql_close(); 
?>
Merci d'avance,