leetee Posted October 30, 2009 Share Posted October 30, 2009 I have the below query: SELECT l1.id as lev1_id,l2.id as lev2_id,l3.id as lev3_id,l1.category AS lev1, l2.category as lev2, l3.category as lev3 FROM categories AS l1 LEFT JOIN categories AS l2 ON l2.parentCat = l1.id LEFT JOIN categories AS l3 ON l3.parentCat = l2.id WHERE l1.parentCat = NULL Which outputs something like: ------------------------------------------------------- lev1_id | lev2_id | lev3_id |lev1 | lev2 | lev3 | ------------------------------------------------------ 1 | 4 | 7 |makeup | lipstick | wet look 1 | 4 | 8 |makeup | lipstick |matt 1 | 5 | 9 |makeup | mascara| black 2 | 11 | NULL|skincare|creame | NULL 3 | 12 | 13 |haircare |hairspray| Xtra Hold I loop through the results and list all the categories and subcategories as below. $prevCat1Name = ''; $prevCat2Name = ''; foreach ($all_cats as $cats) { if ($cats['lev1'] !== $prevCat1Name) { echo $cats['lev1']; } if (($cats['lev2'] !== $prevCat2Name)&&($all_cat['lev2'] !== NULL)) { echo ' - ' .$cats['lev2']; } if (($cats['lev3'] !== NULL)&&($all_cat['lev2'] !== NULL)) { echo ' -- ' . $cats['lev3'] . PHP_EOL; } $prevCat1Name = $all_cat['lev1']; $prevCat2Name = $all_cat['lev2']; } How do I amend the above code so that i can expand / contract the sublevels (without having seperate queries for each level)? Link to comment https://forums.phpfreaks.com/topic/179637-help-with-explandable-category-tree/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.