close ad
Databridge V2 with MySQLi support IS Now Available!
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Show category hierarchy by product ID.

Thread began 5/25/2012 10:15 am by CraigR | Last modified 5/29/2012 11:34 am by Jason Byrnes | 856 views | 5 replies |

CraigRBeta Tester

Show category hierarchy by product ID.

I have been asked to show all of the categories to which a product belongs. (PS3 database)
Querying the ps3_productcategories table, it is easy to establish which categories a product belongs to, but I would also like to see the hierarchy.

So, for example, Item number 1 may belong to 6 categories, two of which are parent categories, and the others are sub categories.
Hierarchical view may look something like this…
Category 1->Category 2->Category 3
Category 4 ->Category 5
Category 4 ->Category 6
In this instance,
Categories 1 and 4 are parent categories
Categories 5 and 6 are subordinate to Category 4
Category 3 is subordinate to Category 2 which is subordinate to category 1.
I’m not necessarily looking for a definitive answer, just some idea as to a method of approach.

Thanks

Sign in to reply to this post

Jason ByrnesWebAssist

the hierarchy is set by the CategoryParent column of the ps3_categories

you would need to use a join query to to return the CategoryParent parent and create the hierarchy from that column.

Sign in to reply to this post

CraigRBeta Tester

sorry, I can't quite get it

here's what i have done..

i am checking for 3 levels of hierarchy, (if there's a way to check for n levels, i would love to know)

knowing the product ID, 35 in this instance i am joining the products table, the productcategories table and the categories table, (3 times) in each case joining each instance of the categories table on Category Parent to CategoryID of the next instance.

I get a result, but I get a duplicate row where the 3 level hierarchy is displayed, but also the last 2 levels are also displayed on a different row.

Am I missing the point ?

SELECT ps3_products.ProductID, ps3_categories_2.CategoryParent AS Cat2Parent, ps3_categories_2.CategoryID AS Cat2ID, ps3_categories_2.CategoryName AS Cat2Name, ps3_categories_1.CategoryParent AS Cat1Parent, ps3_categories_1.CategoryID AS Cat1ID, ps3_categories_1.CategoryName AS Cat1Name, ps3_categories.CategoryParent AS CatParent, ps3_categories.CategoryID AS CatID, ps3_categories.CategoryName AS CatName
FROM ((ps3_products INNER JOIN (ps3_categories INNER JOIN ps3_productcategories ON ps3_categories.CategoryID = ps3_productcategories.CategoryID) ON ps3_products.ProductID = ps3_productcategories.ProductID) INNER JOIN ps3_categories AS ps3_categories_1 ON ps3_categories.CategoryParent = ps3_categories_1.CategoryID) LEFT JOIN ps3_categories AS ps3_categories_2 ON ps3_categories_1.CategoryParent = ps3_categories_2.CategoryID
WHERE (((ps3_products.ProductID)=35));
Sign in to reply to this post

Jason ByrnesWebAssist

yeah, your missing it a bit.

there is no need to use the multiple joins, not using multiple loins is how you do n levels.


use a group by clause on the CategoryParent

and create the hierarchy by looping through the records in the recordset.


you may need to order by the CategoryParent as well, and add logic that will save the CategoryParent in a variable, then the next time through compare the current record CategoryParent to the one in the variable and only write it if it is different.


If you need us to help you create this, I would suggest signing up for a premiere support appointment.

Sign in to reply to this post

CraigRBeta Tester

Ok, (I think) I get it now.

What I have done is to take the getaccordion function which generates the vertical menu as a guide, and use this logic, removing any unecessary functionality and also filtering by the product id.

Seems to give me what I need, thanks for the advice.

Sign in to reply to this post

Jason ByrnesWebAssist

Glad to hear it is working.

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...