Aide - Recherche - Membres - Calendrier
Version complète : Récuperer tout les id de subcats dans un array
Forum osCommerce-fr > Adapter OsCommerce MS2 > Echanges développeurs
laurent54
Bonjour TLM,

Voila je cherche à récuperer la totalité des ID des sous-cats, idéalement dans un array

Je m'explique

Ma base de données est construite sur base oscommerce de cette facon

Niveau 1 > Niveau 2 > Niveau 3 > Niveau 3.1, 3.2, 3.4

Je voudrais donc récuperer la totalité des id des sous cats (2,3 et 3.x) dans un array

Existe t'il une fonction qui gère déja la chose qq part, ou une contrib que j'ignore ?

Cdt
chti_poupon
smile.gif Bonjour !
La table categories contient les champs categories_id et parent_id
la sous-sous catégorie n° tant a un parent n° çà qui est lui même la sous catégorie de n° çà; et ainsi de suite.
C'est, par exemple, géré au début de catalog/index.php.
Bonne adaptation !
Chti poupon
laurent54
Bonjour Cht'i poupon,

Merci de ta réponse, je connais effectivement parfaitement la structure des catégories d'osc

Ce que je veux réaliser c'est récuper tout les id de sous-cat quelque soit la profondeur de la catégorie.

Cdt,
FoxP2
fichier includes/functions/general.php :
Code
////
// Return all subcategory IDs
// TABLES: categories
  function tep_get_subcategories(&$subcategories_array, $parent_id = 0) {
    $subcategories_query = tep_db_query("select categories_id from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$parent_id . "'");
    while ($subcategories = tep_db_fetch_array($subcategories_query)) {
      $subcategories_array[sizeof($subcategories_array)] = $subcategories['categories_id'];
      if ($subcategories['categories_id'] != $parent_id) {
        tep_get_subcategories($subcategories_array, $subcategories['categories_id']);
      }
    }
  }

c'est la boucle (utilisée dans advanced_search_result)
laurent54
Parfait FoxP2 c'est exactement ce que je recherchais merci bcp wink.gif
laurent54
Hello,

Alors je vais encore faire appel a vos lumières pour la suite de mon développement

Maintenant que j'ai utilisé la fonction tep_get_subcategories sur ma catégories mère en récupérant le Cpath

Je me retrouve avec un array contenant toute mes sous-cats ( logique) , dans une variable $array_cat.

J'aimerais maintenant ne conserver dans un array que les sous-cats contenant des produits, j'ai bien reperé la fonction tep_count_products_in_categories mais je ne sais pas comment l'appliquer à mon array des sous-cats

Une idée ?

Cdt,
FoxP2
tu parles de produits actifs (status) ou bien de sous cat vides ?
si tu as des ss cat vides (qui ne contiennent aucun produits) c pas bon. cela veut dire que le catalogue a été mal conçu au départ. (as tu déjà vu des rayons vides dans un hyper ? -- je schématise, mais c un peu ça)

sinon c'est le genre de requête qui peut être très gourmande suivant la profondeur de ton catalogue.
donc, la question est : pourquoi tu en as besoin, à quel endroit et pour quoi faire ?
laurent54
Hello,

je parle bien de sous-cat vide et j'ai besoin de recuperer uniquement les identifiant des catégories qui contiennent des produits justement pour lancer une requête qui pour des raisons de charge ne devrait pas contenir les sous-cats vides, j'ai donc besoin d'éliminer de mon array obtenu avec tep_get_sub ... les catégories sans produits.

Cdt,
FoxP2
ok, donc dans ce cas, revois ta répartition dans les cat/sous-cat...
il est primordial de réduire le nombre de clic pour arriver au produit. les ss cat qui contiennent 0 produit doivent être éliminées.(je te conseille de regarder les plus grands site de e-commerce de france pour voir comment est construite leur arborescence et tu vas comprendre) il y a d'autres moyens de 'filtrer' la navigation dans les catégories.
je ne sais pas si tu es commerçant 'en dur' (hors internet). ça aide parfois pour construire un shop en ligne.
il est nécessaire de rationaliser au maximum.
parce que le schéma :
cat a -> ss cat A (rien à vendre) -> ss ss cat A(rien à vendre) -> ss ss ss cat A -> le produit .... ça le fait pas du tout. (c un schéma, qu'il soit plus court ou plus long, c pareil)

ensuite difficile de donner des réponses "type" qui ne prendront jamais en compte des "particularités".

peut être que des avis opposés te donneront des raisons en prouvant l'efficacité des sous cat vides.
je leur laisse la parole. happy.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.