Requête sur plusieurs critères

Belugha
Invité n'ayant pas de compte PHPfrance

27 août 2008, 10:56

Bonjour,

J'ai une table catégorie composé de:

id, nom, parent ce qui donne:

1,Automobile,0
2,Audi,1
3,Peugeot,1
4,Porsche,1
5,Monnaies,0
6,Billets,5
8,Billets Franc,6
9,Billets Rare, 6
7,Monnaies,5

Ensuite une table annonce avec:
id,nom,catégorie

Ma question:
Comment rechercher toutes les annonces de la catégorie 'Monnaies' sachant qu'il peut y avoir 4 niveaux de sous-catégories.

Je n'utilise pas la méthode intervallaire, car l'arbre ne contiendra pas plus de 4 niveaux.

La recherche que cherche à faire n'est pas de remonter le parent de la catégorie mais l'inverse, c'est à dire pour la catégorie Monnaies, lister tous les enfants et ainsi afficher toutes les annonces correspondantes à ma catégorie Monnaies (Monnaies,billets,billet franc ....

Merci.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 août 2008, 11:11

Tu n'as pas vraiment le choix selon moi, il te faut un premier traitement récursif qui te listera l'ensemble des sous-catégories de la catégorie demandé pour te permettre d'en connaitre les identifiants. Alors seulement tu pourras faire ta requête (avec un IN() par exemple) pour ramener les enregistrements qui leurs sont associés...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Belugha
Invité n'ayant pas de compte PHPfrance

27 août 2008, 14:01

Je me suis résolue à utiliser la représentation intervallaire.

Merci.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

27 août 2008, 14:54

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.