Bonjour je souhaiterais faire un script pour afficher des données issues d'une table MySql mais je bloque sur le résultat renvoyé par les requêtes et l'algorithme
en php. Voici en gros comment se présente la table (L'aspect relationnel n'est pas proposé chez l'hébergeur)
Table pages
########################################
id Catégorie # url de la page
0 A # page1.html
1 A # page2.html
2 A # page3.html
3 B # page4.html
4 B # page5.html
5 C # page6.html
6 C # page7.html
7 C # page8.html
#########################################
Je souhaite dans une page html afficher d'abord la catégorie puis la liste des url des pages lui appartenant exemple
Catégorie A
page1.html
page2.html
page3.html
Catégorie B
page4.html
page5.html
Dans chaque catégorie mentionnée on aura la liste des pages s'y rapportant
Pour cela j'ai élaboré le script suivant
Le problème est que je n'obtiens qu'un enregistrement d'url de page aprés l'affichage de la 1ère catégorie . Pouvez vous me dire ce que je peux faire pour régler le problème? Adopter une autre syntaxe un autre code changer la requête? Merci d'avance de votre réponse.
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 <? $link = mysql_connect("server_url","db","pwd") or die ("Impossible de se connecter"); mysql_select_db ("db") or die ("Impossible d'accéder à la base de données"); $query="SELECT DISTINCT catégorie FROM pages ORDER BY catégorie"; #Chaque enregistrement est unique ne souhaite l'avoir qu'une fois sur la page html $result=mysql_query($query); $val=mysql_fetch_array($result); $query1="SELECT * FROM `pages` WHERE `Catégorie` = '$val[catégorie]'"; # cette requête retourne la liste des url de pages appartenant à la catégorie , obtenue avec la 1ère requête $result1=mysql_query($query1); $val1=mysql_fetch_array($result1); while ($val=mysql_fetch_array($result)) { echo "<hr>"; echo $val["catégorie"] ; #on affiche les catégories et on saute des lignes, ça, ça marche while ($val1=mysql_fetch_array($result1)){ #là on récupère les données répondant à la valeur obtenue avec la requete1 et la boucle imbriquée se charge de les afficher avec retour à la ligne echo $val1["url de la page"] ; echo "<br>"; } echo "<br><br>"; } mysql_free_result($result); mysql_close($link); ?>
Partager