NYCPHP Meetup

NYPHP.org

[nycphp-talk] Building trees

Rob Marscher rmarscher at beaffinitive.com
Wed Jul 26 20:11:21 EDT 2006


Maybe try using a modified preorder tree.  This article explains it in 
MySQL/PHP terms - 
<http://www.sitepoint.com/article/hierarchical-data-database/2>.  If you 
organize your tree that way, it will prevent the need for recusion.  The 
only downside is it's more difficult to understand and requires more 
queries when adding new nodes because you have to update the numbering 
for the other nodes.  But I recommend it.

FYI, nyphp-mysql is a special list for MySQL related PHP topics - 
<http://lists.nyphp.org/mailman/listinfo/mysql>

-Rob


Brian O'Connor wrote:
> Hello all,
> 
> Right now I'm building a site that has a "tree" like structure, and 
> right now in order to get the children I'm using a recursive function to 
> get them all, works fine, but that strikes me as inefficient and I'm 
> trying to find a way to get it with one query, rather than a variable 
> amount of queries based on how many 'events' a user has.
> 
> I looked through the archives of the list to find a thread exactly like 
> this, but was in 2002 apparently before MySQL had subqueries (and 
> apparently that's what you need; I'm not sure but that's what I gathered 
> looking through the responses).
> 
> I was wondering if anyone could help me out.
> 
> Right now all the events are in a table called 'cal_events', each row 
> has an id and a parent_id (among other things that I don't think are 
> important for this).  If you'd like to see the function I can certainly 
> post that as well.
> 
> All I do is get all the events that have a parent_id of 0 (top level), 
> loop through them to get their children, and loop through them to get 
> their children etc (in order), and indent them as needed on the display 
> side.
> 
> Thanks in advance for any ideas.
> 
> -- 
> Brian O'Connor
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> New York PHP Community Talk Mailing List
> http://lists.nyphp.org/mailman/listinfo/talk
> 
> NYPHPCon 2006 Presentations Online
> http://www.nyphpcon.com
> 
> Show Your Participation in New York PHP
> http://www.nyphp.org/show_participation.php



More information about the talk mailing list