No, i'm using a MySQL DB.

"Justin Patrin" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> Matt Palermo wrote:
>
> > Hey everyone.  I'm looking for assistance/suggestions/answers on how to
> > build a select dropdown box from data that needs to be pulled
recursively
> > from a MySQL database.  Basically the situation is mainly for a
dicussion
> > thread system type of thing where I have categories nested inside
> > categories, nested inside categories...  Anyway, I want to be able to
build
> > a drop down box containing all the categories indented underneath it's
> > parent category to look something similar to this:
> >
> > -------------------------
> > Top Level Category
> >      - Nested Category
> >           - Lower level
> >                - Etc....
> > Top Level Category
> >      - Nested Category
> > Top Level Category
> > -------------------------
> >
> > Then the user will be able to select one from the dropdown menu.  I have
all
> > the categories stored in a MySQL database called site_categories.  The
table
> > is setup like this:
> >
> > __________________________________
> > | Cat_ID | Cat_Parent |       Cat_Name         |
> > |---------------------------------------------|
> > |    1       |         0         |       Top Level  1      |
> > |---------------------------------------------|
> > |    2       |         1         |       Nested 1            |
> > |---------------------------------------------|
> > |    3       |         0         |       Top Level   2     |
> > |---------------------------------------------|
> > |    4       |         2         |       Nested 2            |
> > |---------------------------------------------|
> >
> > Sorry for the bad pictures you hopefully you get the idea.  Anything
with a
> > 0 Cat_Parent is a Top Level category.  Then the others are all nested
inside
> > other categories that have the same Cat_ID as the nested categories
> > Cat_Parent.  I basically need help creating a properly indented dropdown
> > menu box using this structure from the database.  I assume I'm gonna
have to
> > use some sort of recursion here, but I'm not sure how to go about this.
> > Please help if you can.
> >
> > Thanks,
> >
> > Matt
> > http://sweetphp.com
>
> I'd suggest using a recursive function. (I'm assuming you're using PEAR
> DB...)
>
> function getSelect(&$db, $catParent = 0, $indent = '') {
>    $sth = $db->query('SELECT * FROM categories WHERE Cat_Parent =
> '.$catParent);
>    while($rec = $sth->fetchRow()) {
>      echo '<option
> value="'.$rec['Cat_ID'].'">'.$indent.$rec['Cat_Name'].'</option>';
>      getSelect($db, $rec['Cat_ID'], $indent.'  ');
>    }
> }
>
> $db = DB::connect('mysql://user:[EMAIL PROTECTED]/db');
> $db->setFetchMode(DB_FETCHMODE_ASSOC);
> echo '<select name="selectBox">';
> getSelect($db);
> echo '</select>';
>
> I think that will work ;-)
>
>
> --
> paperCrane <Justin Patrin>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to