Jump to content

Help with explandable category tree


leetee

Recommended Posts

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

Archived

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

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.