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 :

[SQL] Afficher le nombre de sous-categories ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Par défaut [SQL] Afficher le nombre de sous-categories ?
    Salut
    j'ai une table mysql qui contient des categories et chaque categorie contient des sous-categories et chaque sous-categorie contient des sous-categories et ainsi de suite.
    je voudrais afficher les categories et le nonbre de leur sous-cats
    comment faire ?
    merci pour votre aide

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Si tu donnais la structure de ta table, ce serait plus facile pour te répondre. On est obligé de faire des suppositions.
    On va donc supposer que ta table a la structure suivante :
    Categories(CatId, CatSupp, ...) où CatSup est le CatId de la catégorie mère.
    Donc les catégories principales n'ont pas de catégorie mère.
    Dès lors on peut essayer la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CatSupp, CatId
    FROM Categories
    WHERE CatSupp IS NOT NULL
    ORDER BY CatSupp, CatId
    Cela devrait donner toutes les catégories qui ont des sous-catégories, y compris les sous-catégories qui ont des sous-sous catégories.
    Si tu veux restreindre aux catégories principales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT CatSupp, CatId
    FROM Categories
    WHERE CatSupp IS NOT NULL AND CatSupp IN (
      SELECT CatId 
      FROM Categories
      WHERE CatSupp IS NULL)
    ORDER BY CatSupp, CatId
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Moi j'aurais dis ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT catPrin.* , COUNT(sousCat.*) AS nbSousCat
    FROM Categories AS sousCat
    LEFT OUTER JOIN Categories AS catPrin
         ON catPrin.id = sousCat.idPrin
    GROUP BY catPrin;

  4. #4
    Membre averti
    Inscrit en
    Février 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 18
    Par défaut
    Salut et marci pour votre aide
    ce que je voudrais faire c'est :
    par exp jai une cat1 qui a cat2 comme fille et cat2 a cat3 comme fille
    le resultat cerait:
    cat1 : 2 filles (directs+indirects)
    cat2: 1 fille
    cat3: 0 fille
    merci pour votre aide

  5. #5
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Citation Envoyé par amin1425 Voir le message
    Salut et marci pour votre aide
    ce que je voudrais faire c'est :
    par exp jai une cat1 qui a cat2 comme fille et cat2 a cat3 comme fille
    le resultat cerait:
    cat1 : 2 filles (directs+indirects)
    cat2: 1 fille
    cat3: 0 fille
    merci pour votre aide

    Dans ce cas, test ma requête SQL, j'ai pu me tromper, mais dans tous les cas ça te donne la manière de faire.

Discussions similaires

  1. Réponses: 7
    Dernier message: 24/09/2010, 20h20
  2. [MySQL] Afficher des sous-categories
    Par keusty78 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/09/2009, 13h38
  3. [SQL] Afficher le nombre de requêtes exécutées
    Par Sayrus dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/10/2007, 20h32
  4. Réponses: 7
    Dernier message: 03/10/2006, 23h15
  5. afficher un nombre sous format binaire?
    Par sofiane44 dans le forum C++
    Réponses: 2
    Dernier message: 20/01/2006, 18h47

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