Bonjour à tous,
Voici mon souci :
Je suis en train de créer un site web en PHP dont chaque page est construite de facon dynamique selon ce modele (avec des include et sous la forme d'un tableau) :
- un header
- une colonne à gauche contenant le menu
- une colonne à droite pour le contenu des pages
- un footer
Voici le code de mon menu (qui est donc appelé à chaque chargement de page) :
Le problème est donc que la navigation sur le site est ralentie par le fait que je fait ces appels à la base de données à chaque chargement de page, pour construire ce menu.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 <? //connexion à la BDD include("connect.php"); $url = $_SERVER['REQUEST_URI']; //si l'utilisateur est un particulier on se connecte à la table particuliers if ($_SESSION['APPARTENANCE']=="RAQUETTES"){ $table = "randosraq"; echo "<a href='index2.php?appart=PIED'>Voir les randos à pied</a><br/><br/>"; } else { $table = "randospied"; echo "<a href='index2.php?appart=RAQUETTES'>Voir les randos en raquettes</a><br/><br/>"; } //============== on construit le menu =========================== //on affiche les randos à themes $sql = "SELECT URL,TITRE FROM $table WHERE TYPE='theme';"; $resultat = mysql_query($sql); ?> <script type="text/javascript"> window.onload=montre; function montre(id) { var d = document.getElementById(id); for (var i = 1; i<=6; i++) { if (document.getElementById('ssmenu'+i)) {document.getElementById('ssmenu'+i).style.display='none';} } if (d) {d.style.display='';} } </script> <!-- //====== MENU DEROULANT CSS ========== // !--> <dl id="menu"> <? //randos demi journée if ($table == "randospied"){ echo "<dt onclick=\"javascript:montre();\"><a href='demiAccueil.php'><img src='images/menu/demi.png' alt='Randos demi-journée' /></a></dt>\n"; } else { echo "<dt onclick=\"javascript:montre();\"><a href='demiAccueilRaq.php'><img src='images/menu/demi.png' alt='Randos demi-journée' /></a></dt>\n"; } ?> <dt onclick="javascript:montre();"><img src='images/menu/weekends.png' alt='Randos week-ends' /></dt> <? //on affiche les randos en etoile $sql2 = "SELECT URL,TITRE FROM $table WHERE TYPE='etoile';"; $resultat2 = mysql_query($sql2); echo "<dt onclick=\"javascript:montre('ssmenu3');\"><img src='images/menu/etoile.png' alt='Randos en étoile' /></dt>\n"; echo "<dd id='ssmenu3'>\n"; echo "<ul>\n"; while ($data2 = mysql_fetch_assoc($resultat2)){ if(is_file($data2['URL'])){ echo "<li><a href='".$data2['URL']."'>".$data2['TITRE']."</a></li>\n"; } else { echo "<li><a href='../".$data2['URL']."'>".$data2['TITRE']."</a></li>\n"; } } echo "</ul>\n"; echo "</dd>\n"; echo "<dt onclick=\"javascript:montre('ssmenu4');\"><img src='images/menu/themes.png' alt='Randos à thèmes' /></dt>\n"; echo "<dd id='ssmenu4'>\n"; echo "<ul>"; //randos à themes while ($data = mysql_fetch_assoc($resultat)){ if(is_file($data['URL'])){ echo "<li><a href='".$data['URL']."'>".$data['TITRE']."</a></li>\n"; } else { echo "<li><a href='../".$data['URL']."'>".$data['TITRE']."</a></li>\n"; } } echo "</ul>\n"; echo "</dd>\n"; //randos itinerantes echo "<dt onclick=\"javascript:montre();\"><img src='images/menu/itinerantes.png' alt='Randos itinerantes' /></dt>\n"; //on affiche les categories statiques echo "<dt onclick=\"javascript:montre('ssmenu6');\"><img src='images/menu/hebergement.png' alt='Hebergement' /></dt>\n"; echo "<dd id='ssmenu6'>\n"; echo "<ul>\n"; $sql3 = "SELECT URL,TITRE FROM autres WHERE CATEGORIE='hebergement';"; $resultat3 = mysql_query($sql3); $data3 = mysql_fetch_assoc($resultat3); if(is_file($data3['URL'])){ echo "<li><a href='".$data3['URL']."'>".$data3['TITRE']."</a></li>\n"; } else { echo "<li><a href='../".$data3['URL']."'>".$data3['TITRE']."</a></li>\n"; } ?> </ul> </dd> <dt><img src='images/menu/tarifs.png' alt='Tarifs' /></dt> <dt><a href='contact.php'><img src='images/menu/contact.png' alt='Contact' /></a></dt> <dt><a href='livor.php'><img src='images/menu/livreor.png' alt='Livre d or' /></a></dt> </dl>
J'aimerais donc pouvoir utiliser AJAX afin de n'interroger la BDD qu'une seule fois pour construire mon menu, et me servir du résultat ensuite sur les autres pages...mais j'ai du mal à voir le schéma que je dois mettre en place...
Ca serait bien si quelqu'un pouvait me mettre sur la piste...
Merci d'avance.
Partager