cherche conseil de PRO [ASP] - Programmation
Marsh Posté le 09-02-2001 à 19:42:03
C pas de l'ASP, c plutot de l'analyse... donc MERISE
G pas vraiment capté ce ke tu voulais
Marsh Posté le 09-02-2001 à 19:55:31
Une table de categories et une table de liens entre les catégories peut être...
Marsh Posté le 09-02-2001 à 19:59:12
C'est vrai que je m'explique comme un pied
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
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 ?
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 : |
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 : |
je sais pas si j'ai ete tres clair !
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
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 )
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 ?
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)
Marsh Posté le 09-02-2001 à 20:58:46
ah ok...
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)
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--
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
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
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
Marsh Posté le 12-02-2001 à 11:19:00
C très simple, mais c'est hyper compliqué...
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...)
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
Marsh Posté le 12-02-2001 à 20:19:23
Effectivement, je comprends mieux.
J'ai encore un petite question :
Comment ecrit on la condition d'affichage produit?
If ???=""
Else (affiche les prods)
Merci pour votre aide
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
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