Sorry I wasn't really awake, and didn't notice which list you'd posted on :-) Here's an example in PHP (not tested):
============================================== $cat_list = array(); $sql = "select id, parent_id, category from your_table where order by parent_id, category "; $res = mysql_db_query($dbName, $sql) or die("Fejl ved query: $sql<hr>" . mysql_error()); while ($row = mysql_fetch_assoc($res)) $cat_list[] = $row; showcattree(0, 0, $cat_list); function showcattree($parent_id, $niveau, &$cat_list) { $tabStr = str_repeat(" ", $niveau*3); for ($i=0; $i<count($cat_list); $i++) { $local_id = $cat_list[$i]["id"]; $local_parent_id = $cat_list[$i]["parent_id"]; $local_navn = $cat_list[$i]["titel"]; if ($local_parent_id == $parent_id) { echo "$tabStr$local_navn<br>"; showcattree($local_id, $niveau+1, $cat_list); $count++; } } } ============================================== Please note that cat_list is given as a by-reference parameter. Otherwise you'd be copying the whole array for each recursive function call. The trick is, that to make a tree you always need to use recursive functions. The performance is gained by loading the complete list from database at once (instead of calling a mysql SELECT statement for each branch of the tree). - Carsten > -----Oprindelig meddelelse----- > Fra: Carsten Gehling [mailto:[EMAIL PROTECTED]] > Sendt: 27. maj 2002 20:33 > Til: [EMAIL PROTECTED] > Emne: SV: building tree view in mysql? > > > Well you'll neew to do some coding in your application language. > What are you using to connect to MySQL? Perl? PHP? Java? > > Tell me, and I'll give you an example where you only query the > database once (for optimum performance). > > - Carsten > > > -----Oprindelig meddelelse----- > > Fra: Sagi Bashari [mailto:[EMAIL PROTECTED]] > > Sendt: 27. maj 2002 20:50 > > Til: olinux; [EMAIL PROTECTED]; [EMAIL PROTECTED] > > Emne: Re: building tree view in mysql? > > > > > > > > Yeah, thats exactly what I wanted to do. But how do I make MySQL sort it > > like that? Show the parent first, and then all its childs, so the > > application can determite if it's subcategory by checking if > the parent is > > was changed. > > > > Sagi > > > > From: "olinux" <[EMAIL PROTECTED]> > > > > > > > create a table like this: > > > id | parent_id | category > > > > > > parent_id points to the parent categories id. Top > > > level categories get parent_id of '0' > > > > > > ex: > > > 1 | 0 | auto > > > 2 | 1 | repair > > > 3 | 2 | body > > > 4 | 2 | windshields > > > 5 | 1 | detailing > > > 6 | 2 | tires > > > > > > Tree would look like: > > > auto > > > repair > > > body > > > windshields > > > tires > > > detailing > > > > > > olinux > > > > > > > > > > > > > --------------------------------------------------------------------- > > Before posting, please check: > > http://www.mysql.com/manual.php (the manual) > > http://lists.mysql.com/ (the list archive) > > > > To request this thread, e-mail <[EMAIL PROTECTED]> > > To unsubscribe, e-mail > > <[EMAIL PROTECTED]> > > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > > > > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php