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 :

afficher une catégorie et ses sous catégories


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 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut afficher une catégorie et ses sous catégories
    salut,
    Je suis une quiche en mysql c'est pas drôle.
    Ça, c'est fait !
    Je souhaite afficher les catégories et sous catégories qui s'y réfèrent qui sont dans une table. Là, il me met "Subquery returns more than 1 row "...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT name, uid 
    FROM `tx_avotherresources_cat` 
    WHERE subcatof LIKE (
      select uid 
      from `tx_avotherresources_cat` 
      WHERE subcatof =0
    )
    nb :
    >uid = les id des catégories
    >les catégories de 1er niveau (qui ne sont pas dans des sous cat) ont un subcatof = 0 sinon c'est une sous cactégorie.

    Merci à tous 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 815
    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 815
    Billets dans le blog
    14
    Par défaut
    Il faut faire une auto-jointure.
    Ca devrait donner un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.name AS cat, t2.name AS subcat
    FROM tx_avotherresources_cat AS t1
    INNER JOIN tx_avotherresources_cat AS t2 ON t2.subcatof = t1.uid
    ORDER BY t1.name, t2.name
    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
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Bien sûr, l'auto-jointure ne ramène que le premier niveau de sous-catégorie.
    S'il y en a plusieurs, ça se complique et il faut faire appel à de la récursivité, ou alors revoir le modèle de données, comme expliqué dans cet excellent tutoriel : http://sqlpro.developpez.com/cours/arborescence/

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Il faut faire une auto-jointure.
    Ca devrait donner un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.name AS cat, t2.name AS subcat
    FROM tx_avotherresources_cat AS t1
    INNER JOIN tx_avotherresources_cat AS t2 ON t2.subcatof = t1.uid
    ORDER BY t1.name, t2.name
    merci cinephil,
    j'ai pas saisi ta requete je compren pas bien ensuite comment affichir les résultats, genre echo de.. quoi ? j'ai essaillé de t1.nam ou cat et.. rien

    j'ai fais ça :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $sql="select uid, name from tx_avotherresources_cat WHERE subcatof =0";
            $rt=mysql_query($sql);                     
            while ($data= mysql_fetch_array($rt));
              { 
               echo $data['name'].'<br />';
                $sql1="SELECT name FROM tx_avotherresources_cat where subcatof='$data[uid]'";  
                $rt1=mysql_query($sql1);                         
                $dataprod= mysql_fetch_array($rt1);
     
                echo '----'.$dataprod['name'].'<br />';
     
            }

    et ça m'affiche un truc débile genre uniquememnt la 1er cat.. c'est tout

    pffff

Discussions similaires

  1. MOR d'une classe et ses sous classes
    Par 0coco0 dans le forum Hibernate
    Réponses: 1
    Dernier message: 01/09/2008, 13h43
  2. Réponses: 7
    Dernier message: 19/07/2008, 20h07
  3. afficher une séquence de fréquence des catégories
    Par mirandor dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2008, 08h23
  4. [WSS 3.0] Afficher une liste dans un sous site
    Par Paul69 dans le forum SharePoint
    Réponses: 3
    Dernier message: 16/09/2007, 12h09
  5. [XSLT]Trouver un noeud avec une condition sur ses sous-noeuds
    Par enguerran dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/02/2007, 11h00

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