[ASP] cherche conseil de PRO

cherche conseil de PRO [ASP] - Programmation

Marsh Posté le 09-02-2001 à 19:39:39    

Voila,
 
j'ai un gros probleme de conception. Je monte actuellement une boutique en asp.
 
Mon problème:
 
Je dois à partir d'une table (access) "categories" afficher des sous rubriques qui devront afficher à leurs tours des sous sous rubriques et ainsi de suite.
Que dois je créer comme tables dans access pour pouvoir gérer ça sachant qu'il n'y à pas le meme nb de sous categorie pour chaque catégorie ?
 
Compris ?? :(
 
Merci de m'aider

Reply

Marsh Posté le 09-02-2001 à 19:39:39   

Reply

Marsh Posté le 09-02-2001 à 19:42:03    

C pas de l'ASP, c plutot de l'analyse... donc MERISE :D
 
G pas vraiment capté ce ke tu voulais :(

Reply

Marsh Posté le 09-02-2001 à 19:55:31    

Une table de categories et une table de liens entre les catégories peut être...

Reply

Marsh Posté le 09-02-2001 à 19:59:12    

C'est vrai que je m'explique comme un pied :D
 
En clair.
Lorsque je clic sur une categorie une recherche est effectué dans ma bdd pour afficher et générer automatiquement une page comportant des visuels et des liens vers des sous categories.
 
Jusque la tout est clair ?
 
Jusque la presque pas de pb, car en fonction de Id de la cat sélectionnée je peux ressortir des sous catégories.
Mon lien est du type:
<a href="categorie.asp?num=<%=rs.Fields("Id_cat" ).value%>">...
 
J'affiche donc mes sous categories.
Là ça ce complique: quel type de lien faire pour afficher mes sous categorie, et d'autre par comment faire en sorte que le lien ailles piocher dans ma table "produit" s'il n'existe pas de sous sous categorie ?
 
D'autre part, cela releve effectivement plus de la gestion qu'autre chose:
Que dois je créer comme table pour que je puisse gérer facillement toutes les sous sous ... categorie.
Dois je créer une table categorie et une table différente pour chaque sous categorie et sous sous... categorie ? (cela va me faire enormement de tables...), ou existe t-il une autre solution ? (sachant que les different sous sous ... categorie aboutiront au bout du compte dans la table produits.)
 
Merci à vous

Reply

Marsh Posté le 09-02-2001 à 20:01:02    

Oups, je n'aivais pas vu ton poste guru.
Qu'appels tu une table de liens ? et comment ça marche ?

Reply

Marsh Posté le 09-02-2001 à 20:13:04    

tu te fais une table CATEGORIES avec comme structure
CAT_ID    : l'id de la categorie (PK)
CAT_NAME  : le nom de la categorie
CAT_...   : d'autres champs dont tu as peut-etre besoin (url, ...)
CAT_ID_ID : la categorie parente auquelle elle se rattache (null si c'est la racine...)
CAT_ORDER : l'ordre d'affichage
 
et tu la remplis comme suit:

Citation :


CAT_ID,CAT_NAME,CAT_ID_ID,CAT_ORDER
0,MAIN,<NULL>,1
1,CAT 1,0,1
2,CAT 2,0,2
3,CAT 1.1,1,1
4,CAT 1.2,1,2
5,CAT 1.3,1,3
6,CAT 2.1,2,1
7,CAT 2.2,2,2
8,CAT 2.3,2,3
9,CAT 2.4,2,4
10,CAT 1.2.1,4,1
11,CAT 1.2.2,4,2
12,CAT 1.2.2.1,11,1


 
et apres tu recuperes tes categories avec cette ordre:
 
select CAT_ID, CAT_NAME, CAT_ID_ID from CATEGORIES
order by CAT_ID_ID, CAT_ORDER
 
et tu construit une arborescence en rattachant les CAT_ID_ID au CAT_ID deja existants...
 

Citation :


MAIN  
  CAT 1
    CAT 1.1
    CAT 1.2
      CAT 1.2.1
      CAT 1.2.2
        CAT 1.2.2.1
    CAT 1.3
  CAT 2
    CAT 2.1
    CAT 2.2
    CAT 2.3
    CAT 2.4


 
je sais pas si j'ai ete tres clair !  :sweat:


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 09-02-2001 à 20:19:36    

Effectivement, je crois qu'au niveau explication on est sur la meme longeur d'ondes ;)
 
En fait, je n'ai rien compris :(
Peux tu préciser : "la categorie parente auquelle elle se rattache" faut il une autre table ??
 
Merci

Reply

Marsh Posté le 09-02-2001 à 20:26:34    

"la categorie parente auquelle elle se rattache" :
 
c'est l'id de la categorie parente (dans la meme table)
 
imaginons que tu desires avoir:
0 "RACINE"
 ---1 "CAT 1"
      ---3 "CAT 1.1"
 ---2 "CAT 2 "
 
tu auras dans ta table
 
CAT_ID   CAT_NAME   CAT_ID_ID
  0        RACINE     null (car pas de parent, c'est la racine)
  1        CAT 1        0  (la cat. 1 se rattache a la racine)
  2        CAT 2        0  (la cat 2 se rattache aussi a la racine)
  3        CAT 1.1      1  (la cat. 1.1 est rattachee a la cat.1)
 
c'est plus clair ? (pas sur  :sweat: )


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 09-02-2001 à 20:39:54    

C'est effectivement plus clair.
 
Seulement, on s'est mal compris, je ne cherche pas à faire un menu "deroulant".
 
Mon but est d'avoir un menu avec mes grandes categories sur la droite de mon ecran et à gauche des visuels ainsi qu'une description s'y rattachant.
 
Ces visuels sont dans un premier temps des sous rubriques.
Lorsque je clic sur un des visuels, une autre serie de visuel et de description s'affiche (la remplacent). C'est une de mes sous-sous categories. Et ainsi de suite jusqu'a ce qu'il n'y ai plus de nouvelles sous...categories à afficher. Alors j'affiche une liste de produits (visuel+description) s'y référent.
 
ok ? :ouch:

Reply

Marsh Posté le 09-02-2001 à 20:44:02    

En fait, je voudrais faire un peut le meme systeme que sur la boutique de leroy merlin.
http://www.leroymerlin.fr/oepcomp/
 
(on oublie la page d'accueil mais la suite n'est pas mal)
 
:D

Reply

Marsh Posté le 09-02-2001 à 20:44:02   

Reply

Marsh Posté le 09-02-2001 à 20:58:46    

ah ok... :o  
 
 
mais tu devrais pouvoir, a peu de choses pres, garder la meme bd...
 
la methode a utiliser est en gros: afficher la categorie et ses sous rubriques de niveau 1... si la categorie n'a pas de sous rubriques, afficher les produits correspondants  
 
par exemple:  
tu affiches la racine et tous ses enfants (niveau 1):
ca te donne
-=RACINE=-
CAT 1
CAT 2
 
tu cliques sur CAT 1
tu affiches la CAT 1 et tous ses enfants (niveau 1):
ca te donne
-= CAT 1 =-
CAT 1.1
CAT 1.2
CAT 1.3
 
tu cliques sur CAT 1.2
tu affiches la CAT 1.2 et tous ses enfants (niveau 1):
ca te donne
-= CAT 1.2 =-
CAT 1.2.1
CAT 1.2.2
 
tu cliques sur CAT 1.2.1
tu affiches la CAT 1.2.1 et tous ses enfants (niveau 1):
comme la CAT 1.2.1 n'a plus d'enfants, tu affiches les produits qui lui sont associes (c-a-d ayant le meme CAT_ID, 10 dans l'exemple) definis dans une table PRODUITS (PRO_ID, PRO_NAME, PRO_..., CAT_ID)


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 09-02-2001 à 21:01:55    

pour recuperer les sous rubriques de la rubrique selectionne:
 
select CAT_ID, CAT_NAME, CAT_ID_ID from CATEGORIES  
where CAT_ID_ID = <ID DE LA RUBRIQUE SELECTIONNEE>
order by  CAT_ORDER
 
si ca ne te retourne rien (pas de sous categories pour la rubrique selectionnee), tu recuperes les produits dispos:
 
select PRO_ID, PRO_NAME, .... from PRODUITS
where CAT_ID = <ID DE LA RUBRIQUE SELECTIONNEE>

 

--Message édité par JWhy--


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 10-02-2001 à 08:46:29    

Effectivement, c'est une bonne solution, seulement, j'ai peur que ma table soit un peu difficile à gérer :(, car, à terme, elle devrait comporter près de 20 000 entrées.
 
Y aurait il par exemple moyen de faire le meme systeme mais avec une table de liaison (par ex "gest_souscat" )?
Dans ce cas, quelle peut etre la requète ?
 
Merci pour votre aide :D

Reply

Marsh Posté le 12-02-2001 à 09:08:21    

Encore une petite question:
Si j'appelles mes sous rubrique de cette façon (select PRO_ID, PRO_NAME, .... from PRODUITS  
where CAT_ID = <ID DE LA RUBRIQUE SELECTIONNEE>
) cela va m'afficher toutes la sous categorie sélectionnée, mais également toutes ses sous catégories "enfant".
 
Comment faire pour qu'il naffiche qu'un niveau de sous cat. ?
 
Merci à vous

Reply

Marsh Posté le 12-02-2001 à 09:09:33    

Désolé, j'ai été un peut vite. Le chemin d'appel est:
select CAT_ID, CAT_NAME, CAT_ID_ID from CATEGORIES  
where CAT_ID_ID = <ID DE LA RUBRIQUE SELECTIONNEE>  
order by  CAT_ORDER

 
:D :D

Reply

Marsh Posté le 12-02-2001 à 11:19:00    

C très simple, mais c'est hyper compliqué... :D
 
Mais c'est comme ils ont dit...
 
Tu peux ensuite bidouiller des trucs afin d'optimiser les requêtes...
 
Genre faire une unique requête et stocker toute la table dans un objet javascript (côté client) puis ensuite naviguer dans le catalogue à l'aide du javascript... (ça fait moins de traffic réseau...)

Reply

Marsh Posté le 12-02-2001 à 14:27:09    

Djero a écrit a écrit :

Encore une petite question:
Si j'appelles mes sous rubrique de cette façon (l'autre requete ;)) cela va m'afficher toutes la sous categorie sélectionnée, mais également toutes ses sous catégories "enfant".
 
Comment faire pour qu'il naffiche qu'un niveau de sous cat. ?




 
non, normalement ca n'affichera que toutes les rubriques ayant comme parent CAT_CAT_ID... c'est peut-etre un pb de remplissage de ta base... regarde l'exemple que je t'ai donne dans mon premier post:
si tu veux afficher toutes les sous rubriques de CAT 1, tu vas faire:
select CAT_ID, CAT_NAME, CAT_ID_ID from CATEGORIES    
where CAT_ID_ID =  1
order by  CAT_ORDER

 
et ca va te renvoyer:
3,CAT 1.1,1,1  
4,CAT 1.2,1,2  
5,CAT 1.3,1,3  
et pas:
10,CAT 1.2.1,4,1  
11,CAT 1.2.2,4,2  
12,CAT 1.2.2.1,11,1


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 12-02-2001 à 20:19:23    

Effectivement, je comprends mieux.
 
J'ai encore un petite question :sweat::
 
Comment ecrit on la condition d'affichage produit?
 
If ???=""
Else (affiche les prods)
 
Merci pour votre aide

Reply

Marsh Posté le 12-02-2001 à 20:34:38    

l'affichage des produits doit se faire quand une categorie n'a pas de sous categories donc:
 
(je connais pas asp, mais j'espere etre assez clair pour que tu puisses t'y retrouver)
 
// on assign la requete de selection des sous categories
rs = "select CAT_ID, CAT_NAME, CAT_ID_ID from CATEGORIES    
     where CAT_ID_ID =  <LA CATEGORIE QUE TU VEUX>
     order by  CAT_ORDER "
 
//on execute la requete  
rs.open;
 
// a-t-on a des sous-categories ?
if not rs.isEmpty then
begin
  // oui, donc on les affiche
  while not rs.eof do
  begin
    (afficher les sous categories)
  end
end
else
begin
  // non, donc on recherche les produits associes a la cat.
  rs2 = "select PRO_ID, PRO_NAME, .... from PRODUITS  
        where CAT_ID = <ID DE LA RUBRIQUE SELECTIONNEE>
        "
  rs2.open
  while not rs2.eof do
  begin
    (afficher les produits)
  end
end


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed