IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Chemin d'un annuaire, diminuer le nbr de requete


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut Chemin d'un annuaire, diminuer le nbr de requete
    Bonjour à tous, grace à vous, sur le forum PHP et vos pistes, j'ai reussi a faire mon script de récursivité afin d'afficher le chemin d'un annuaire selon la catégorie choisit, exemple :

    > index > informatique > programmation > php

    Le petit probleme est que pour chaque rubrique, cela fait une requete ! (ici 3, l'index n'est pas généré par mysql)

    Ce qui m'ennui un peut pour un affichage "simple" en plus des requete de l'annuaire :/, Voici le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    function chemin($cat = 0) {
    $che = mysql_query("SELECT a.id_cat, a.id_parent, a.titre FROM categories a, sites b WHERE a.id_cat='".$cat."' ORDER BY id_cat ASC LIMIT 1") OR DIE (mysql_error());
      while($afc = mysql_fetch_object($che)) {
      chemin($afc->id_parent);
      echo ' <a href="/index.php?id_cat='.$afc->id_cat.'">'.$afc->titre.'</a>';
      }
    }
    ?>
    Comme vous le voyez, pour la récursivité, je vai chercher l'id parent de la rubrique actuel afin d'affiché la catégorie dans le niveau inférieur a chaque fois, bref, la question est surtout : Y' t'il un moyen de s'y prendre autrement afin d'avoir une seul requete qui fasse le meme boulot ? (Jointure ou autre)

    Pour chaque catégorie je ne connais pas à l'avance le nombre de sous catégorie imbriqué, si c'était fixe, j'aurais pu sans doute faire une requete sur 3 niveau (2 jointure ou 2 sous requete) un truc dans le genre ...

    Bref, merci beaucoup de votre réponse.

    Si ca peut aidé je dispose de mysql 5 et php5 pour des fonctions avancé.

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Avec une auto jointure il t'est impossible de récupérer toute l'ascendance d'un element.
    Tu peux faire un "select * from categories", récupérer toutes les catégories, les lier entre elles, et remonter ainsi l'arborescence à partir d'un noeud quelquonque.
    Après à toi de voir qu'est ce qui est plus performant :
    - faire une grosse requete + un traitement php derrière
    - faire 3 petites requetes

    Concernant ta requête:
    - tu utilises une table(site) pour rien
    - tu utilises un order by pour rien

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 27
    Par défaut
    Bonjour,

    Désolé du retard, enfait la requete actuelle était mes essais en local, je ne me sert pas de la table site ni d'une jointure quelquonque, sur le coup j'y ai pas penssé

    Dans l'immédiat cela me fait "3 petites requete" de rien du tout, a la longue il y'aura des centaine de catégorie, donc je pensse rester dans cette optique plutot que de faire une grosse requete + traitement php, merci à toi.

Discussions similaires

  1. Chemin d'un annuaire, diminuer le nbr de requete
    Par Okinou dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/11/2006, 09h54
  2. Chemin d'accès au clip et scenario en flash
    Par Gential dans le forum Flash
    Réponses: 4
    Dernier message: 28/02/2003, 10h10
  3. Comment subsituer un chemin par un autre dans un réseau ?
    Par Baillard dans le forum Développement
    Réponses: 3
    Dernier message: 11/08/2002, 14h01
  4. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32
  5. Algorithme de recherche de chemin
    Par amelie gaya dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 09/06/2002, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo