navigation entre catégories

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par yann214, 10 Avril 2006.

  1. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    Voilà

    imaginons une table dans laquelle on stocke les différentes catégories.
    Chaque catégorie a un nom, un id et l'id de sa catégorie parente.
    Comment peut-on faire pour afficher en haute de la page en cours une série de liens présentant toutes les catégories parentes de la catégorie affichée, sans avoir à faire une requete pour chaque recherche de parent :

    Automobile >> Renault >> Twingo

    Faut-il adapter la table (ajout d'un autre champ) ou y a-t-il una autre astuce ?

    Merci !!!!
     
  2. mamat-
    mamat- WRInaute occasionnel
    Inscrit:
    18 Octobre 2004
    Messages:
    341
    J'aime reçus:
    0
    Il faut que tu fasse une requete avec INNER JOIN, c'est à dire une requete sur deux tables ou tu fais correspondre un champ id du parent avec le champ id-parent de la table fille, ainsi tu remonte les infos autant de fois que nécessaire en fait pour bien faire il faut créer des clés sur les champs d'id qui auront une relation 1 à plusieurs, suis-je clair ? (http://www.w3schools.com/sql/sql_join.asp [En])
     
  3. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    si je comprends bien il faut faire 2 tables :

    CATEGORIE :

    ID_CAT
    NOM
    ...

    LIENS_CATEGORIE :

    ID_CAT
    ID_CAT_FILLE

    et ensuite une jointure entre ces tables.

    Mais comme ça je vais devoir faire une requete à chaque fois que je veux remonter d'un niveau de catégorie non ?
     
  4. mamat-
    mamat- WRInaute occasionnel
    Inscrit:
    18 Octobre 2004
    Messages:
    341
    J'aime reçus:
    0
    Oui mais tu peux faire les requetes en "cascades" donc pour ton fil d'ariane faire simplement une requete "générale" avec autant de jointures que nécessaire... à valider tout de même pour pas stresser le serveur
     
  5. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    Merci pour ces eclaircissements mamat-!

    ... et en admettant que j'ai jusqu'à une dizaine de niveaux de catégories, vaut-il mieux que je lance 10 fois une requete qui va me chercher la catégorie parente pour remonter jusqu'à la racine ou 1 requête qui va alors faire 10 jointures.... ?
     
  6. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    Passe par une fonction récursive. Ne vas pas faire 10 jointures.
    Met ton fil d'ariane en cache, histoire de ne pas surcharger ton serveur.
     
  7. mamat-
    mamat- WRInaute occasionnel
    Inscrit:
    18 Octobre 2004
    Messages:
    341
    J'aime reçus:
    0
    Oui fonction récursive, mais si ta version de SQL te le permet, je ne sais plus la quelle il faut..
     
  8. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    Je ne parlais pas en SQL, mais dans le langage hôte.
    Il n'existe pas de version récursive SQL ( dans le standard SQL ).

    La proposition "RECURSIVE UNION" a été abandonné en 1996.

    Certains outils propriétaire ont implémenté des fonctionalités supplémentaires :
    ORACLE : START WITH et CONNECT BY PRIOR
    DB2 : WITH

    Il me semble que la dernière version de MS-SQL Server a aussi implémenté des fonctions récursives. Il faudrait que je vérifie.

    Mais encore une fois, toutes ces fonctions sont propriétaires et ne sont pas dans la norme SQL
     
  9. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    Aprés vérification :
    le T-SQL de Ms-SQL Server 2005 a bien intégré des fonctions récursives avec gestion du niveau.
     
  10. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    le système de fonction récursive me plait mieux effectivement.

    Peux-tu me donner plus de détails sur la manière de faire et de gérer le cache.

    Admettons qu'un utilisateur arrive via un moteur de recherche sur une page quelconque de l'annuaire, il faut que je construise le fil d'ariane en en-tête de page.
    Je dois donc lancer ma fonction récursive qui va lancer une requête pour chaque niveau de catégorie jusqu'à arriver à la racine.

    Commnet intégrer un cache à tout ça pour ne pas surcharger le serveur ?

    Merci encore pour toutes ces infos !!!
     
  11. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
  12. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    merci Spidetra,

    Je vais jeter un oeil à tout ça.

    Après une première lecture, j'en déduis que tu me conseilles d'utiliser la class PEAR pour placer en cache un bloc qui contiendrait ma zone html "fil d'ariane" ?

    Si le cache du bloc n'existe pas : je lance ma procedure recursive.
    S'il existe, j'affiche le cache.

    Je commence à mieux comprendre =)

    Merci !!!
     
  13. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    Tu as compris le principe.
    Ensuite tu utilises PEAR ou un autre système de cache PHP existant.
    PEAR a l'avantage d'être simple.
     
  14. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    Merci !
    je vais mettre tout ça en pratique !

    Dois-je insatller obligatoirement Pear pour pouvoir utiliser Cache Lite ?
     
  15. mamat-
    mamat- WRInaute occasionnel
    Inscrit:
    18 Octobre 2004
    Messages:
    341
    J'aime reçus:
    0
    Oui il faut que pear soit présent, c'est lui qui "implémente" cache lite.
     
  16. yann214
    yann214 WRInaute occasionnel
    Inscrit:
    17 Novembre 2005
    Messages:
    370
    J'aime reçus:
    0
    ah zut ça devient un peu plus compliqué alors... sur un mutualisé.
    Surtout que c'est pas juste des scripts php à placer dans un répertoire....

    qq'un a déjà installé ça sur un mutualisé ovh ?
     
  17. spidetra
    spidetra WRInaute passionné
    Inscrit:
    7 Juillet 2003
    Messages:
    1 215
    J'aime reçus:
    0
    Chez OVH, PEAR est installé.
    Pour Cache_Lite, je sais plus. Mais en tout cas je l'ai utilisé sur un mutualisé sans pb.

    Je m'étais fait un répertoire PEAR dans lequel je mettais les modules qui m'intéressaient
     
Chargement...
Similar Threads - navigation catégories Forum Date
Site à cacher dans l'historique de navigation Administration d'un site Web 5 Octobre 2021
Que faire de la navigation à facettes ? Référencement Google 19 Février 2020
Comment faire une structure en silo avec un menu de navigation ? Référencement Google 4 Février 2020
htaccess et navigation dans les dossiers URL Rewriting et .htaccess 6 Novembre 2019
Menu navigation, les tendances? Développement d'un site Web ou d'une appli mobile 20 Septembre 2019
Librairie javascript PerformanceNavigationTiming Développement d'un site Web ou d'une appli mobile 7 Avril 2019
Menu de navigation, diversité des ancres de liens et SEO Référencement Google 24 Octobre 2018
Navigation Timing API obsolete or not ? Développement d'un site Web ou d'une appli mobile 12 Juin 2018
Smart content, navigation predictive etc. et seo Rédaction web et référencement 7 Mars 2018
Implémentation d'un navigation contextuelle personnalisée Référencement Google 28 Février 2018
Catégorie pour la navigation, et impact SEO Référencement Google 5 Février 2018
Liens du menu de navigation masquées pour l'internaute mais présent dans le code source Débuter en référencement 5 Octobre 2017
wordpress - lenteur navigation Demandes d'avis et de conseils sur vos sites 4 Mars 2017
Utilisez-vous la navigation privée? Référencement Google 18 Mai 2016
Fichier navigation.php Développement d'un site Web ou d'une appli mobile 25 Mars 2015
Microdata et SiteNavigationElement Débuter en référencement 18 Mars 2015
Titre du site dans la barre de navigation ou pas ? Débuter en référencement 21 Février 2015
Bloquer le crawl de la navigation à facettes Crawl et indexation Google, sitemaps 7 Septembre 2014
Les redirections 301 ralentissent-elles la navigation Débuter en référencement 15 Mai 2014
Facebook et navigation sur Internet Facebook 11 Mai 2014