Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/01/2008, 09h12   #1
Invité régulier
 
Inscription : décembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 40
Points : 7
Points : 7
Par défaut Plan de site

Bonjour à tous,

J'essaie depuis une bonne semaine de générer un plan de site à partir de la table suivante:



J'avais introduit les données en pensant les afficher ainsi:
  • Activités
  • Publications
  • Expositions
  • Acquisitions récentes
  • Multimédia
  • Lecture publique
  • Fonds d'étude
  • Catalogues
  • Catalogues
  • Anciens catalogues
  • Sujet
  • Biographique
  • Thèses
  • Collections
  • Manuscrits
  • Fonds Achard
  • Fonds Bachelard
  • Cartes
  • Iconographie

Je pensais faire un group by sur le champs "menu_principal", puis, faire un Count sur "sous_menu1" et chaque fois que le champs "sous_menu1" se répétait, créer une sous rubrique qui afficherait le "sous_menu2".
La première partie de la requête ne pose pas de problème:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
<table width="602" border="0" cellpadding="0" cellspacing="0">
        <tr>
        <td width="20"></td>
		<td height="84" align="left" valign="top">
		<br><br>
		<% 
		'connection pour la liste des rubriques=menu_principal
		Set Conn = Server.CreateObject("ADODB.Connection")
		Conn.Open DSN_BASE
		Set Rs = Server.CreateObject("ADODB.Recordset")
		Rs.Open "SELECT menu_principal FROM T_site2 GROUP BY menu_principal" , Conn
		Rs.MoveFirst
		do while not Rs.eof%>
		<h2><%=Rs("menu_principal")%></h2><br>
		<%Rs.MoveNext
		loop
		Rs.Close
		Set Rs = Nothing
		Conn.Close
		Set Conn = Nothing%>
		</td>
	    </tr>
        </table>
Je ne vois par contre pas du tout comment récupérer "menu_principal" en variable pour effectuer cette deuxième opération sans Querystring ou ResquestForm.
Est-ce que je complique excessivement la procédure? Y aurait-il beaucoup plus simple? Ou est-ce plus compliqué qu'il n'y paraît???
Merci d'avance pour tout fragement de piste...
Bonne journée.
tonyC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2008, 10h22   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 850
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 850
Points : 5 966
Points : 5 966
Salut,

A mon avis, ce n'est pas une très bonne idée de générer un plan de site à partir d'une base de données. Cela t'oblige à le mettre à jour à chaque fois que tu ajoute une page. N'est-ce pas plutôt un menu de navigation?

Sinon, l'idée d'arborescence me semble mal gérée dans ton cas. Une solution serait d'instaurer un systeme de parentalité.

Code :
1
2
3
4
5
Id   IdParent        Libellé
 0    NULL         Menu principal
 1      0         Activité
 2      1         Publications
 3      0         Expositions
Dans cet exemple, tu vois que chaque enregistrement à un parent (sauf la racine). Il suffit ensuite de faire une requete mettant en jeu deux fois la table avec une jointure entre l'identifiant et le parent. Ainsi, tu auras une liste du style:
Code :
1
2
3
4
5
6
 
Id   IdParent        Libellé               Nom parent
 0    NULL         Menu principal         NULL
 1      0          Activité              Menu principal
 2      1          Publications         Activité
 3      0          Expositions          Menu principal
Si tu ordonnes les enregistrements par le champ "IdParent", tu peux faire une boucle qui affichera les éléments selon l'arborescence.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2008, 10h52   #3
Invité régulier
 
Inscription : décembre 2004
Messages : 40
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 40
Points : 7
Points : 7
Merci Immobilis, je vais tenter de réorganiser ma table dans le sens préconisé, et essayer de gérer l'affichage avec des champs supplémentaires.
Bonne journée.

PS: dois-je ajouter "Délestage" ou autre chose?
tonyC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2008, 11h04   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 850
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 850
Points : 5 966
Points : 5 966
Re, tu peux regarder ici aussi: http://sqlpro.developpez.com/cours/arborescence/

"Delestage" sert quand la question n'a aucun interet. Ce n'est pas le cas. Par contre tu pourras mettre la discussion en "résolu" lorsque tu auras trouvé une solution.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h56.


 
 
 
 
Partenaires

Hébergement Web