Latest News: (loading..)

Archived

This topic is now archived and is closed to further replies.

mattkhan

Can somebody help me out with a function()??

4 posts in this topic

Hi there,

 

I would need a function to find out which categories are underneith the top category. I know that there is a function the other way around. Let me explain what I mean

 

If I have a look at the "categories" table I find two columns that are of interest (categories_ID and parent_ID). Let's say my top category has the ID 1. Now I would look for all IDs where its parent_ID is 1. Now I would use those results to go deeper. As soon as such a query returns no results anymore I would't have any deeper categories.

 

My problem is 1. I don't know exactly how to write such a function, 2. I am scared that this would generate imense work load just to find that out and 3. maybe such a function already exists?!

 

Another idea could be to set up a table that already contains this information? I suppose this would either need manual or even better automatic generation of this information after changes on categories have been made.

 

Thanks for your ideas in advance ;-)

 

Regards Matt

Share this post


Link to post
Share on other sites

Have you looked at the function tep_get_subcategories in the /includes/functions/general.php file?

Share this post


Link to post
Share on other sites

Or try making new function based on the function tep_has_category_subcategories

Share this post


Link to post
Share on other sites

Hi Linda,

 

thanks for the quick reply. This function does exactly what I was looking for and it does it the same way I supposed to solve this issue in my first post.

 

I've seen that this functions has been used in on the advanced search page. I do wonder, if the function doesn't slow down too much, so?!

 

Could anybody post his/her view on that? Just have in mind how many SQL queries need to be done in order to retrieve the wanted information...

 

For everyones convenience I'll quote the function underneith.

 

Thanks again and best regards

 

Matt

 

// 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 = '" . $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']);

     }

   }

 }

Share this post


Link to post
Share on other sites