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
Latest News: (loading..)
Can somebody help me out with a function()??
Started by mattkhan, May 20 2003 06:10 PM
3 replies to this topic
#1
Posted 20 May 2003 - 06:10 PM
#2
Posted 20 May 2003 - 06:16 PM
Have you looked at the function tep_get_subcategories in the /includes/functions/general.php file?
#3
Posted 20 May 2003 - 06:18 PM
Or try making new function based on the function tep_has_category_subcategories
#4
Posted 20 May 2003 - 06:57 PM
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
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
Quote
// 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']);
}
}
}
// 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']);
}
}
}









