Also take a look at Joe Celko's 'SQL for Smarties'. There's a whole
chapter on this. It gets kind if burly, but it's pretty cool. It's all
done by converting your schema below into a tree structure...
(no, i don't have any code since I've just read about it never done it
:)
-philip
In article <[EMAIL PROTECTED]>,
Krznaric Michael <[EMAIL PROTECTED]> wrote:
>James,
>
> Take a look at hierarchical queries in MS SQl. If I'm not mistaken,
>this is part of the SQL 99 standard and is implemented by many SQL 92
>compliant database vendors. I know ORACLE and DB2 support it. I'm not sure
>if you already have but I would investigate this topic with MS SQL.
>
>Mike
>
>
>-----Original Message-----
>From: James Crowley [mailto:[EMAIL PROTECTED]]
>Sent: Monday, May 07, 2001 1:45 PM
>To: [EMAIL PROTECTED]
>Subject: [PHP] Recursive SQL Queries: Web Directory Categories
>
>
>Hi,
> I have a web directory which allows sub-categories to an unlimited
>level.
>This is done with a categories table, and assigning a parentid to each...
>For example
>
>ID ParentID Name
>1 0 Products
>2 1 Sub-Category of Products (Level 1)
>3 1 Another Sub-Category (Level 1)
>4 2 A sub-sub-category (Level 2)
>
>What I need to do is return a list of an items parent categories. For
>example, if we are in category 4, I want text outputted saying
>
>Products \ Sub-Category\sub-sub Category
>
>However, it does not seem possible to do this with a single SQL query. I
>have succeeded in creating a recursive one below (in MS SQL):
>
>CREATE PROCEDURE dbo.dir_recurse(@parentid INT) AS
> --// List its parent categories
> DECLARE @childid INT
> DECLARE hC CURSOR LOCAL FOR SELECT parent FROM categories c WHERE id =
>@parentid ORDER BY c.name FOR READ ONLY
> OPEN hC
> FETCH NEXT FROM hC INTO @childid
> WHILE @@FETCH_STATUS = 0 AND @childid != 0
> BEGIN
> EXECUTE dir_recurse @childid
> FETCH NEXT FROM hC INTO @childid
> END
> CLOSE hC
> DEALLOCATE hC
> RETURN 0
>GO
>
>However, this returns more than one result set, which neither ASP or PHP (so
>therefore it's probably the ODBC driver...) seem to support. Help!
>
>Regards,
>
>- James
>
>Editor, VB Web
>==================
>Web - http://www.vbweb.co.uk
>Email - [EMAIL PROTECTED]
>ICQ# - 60612011
>==================
>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED]]
>> Sent: 06 May 2001 20:11
>> To: [EMAIL PROTECTED]
>> Subject: php-general Digest 6 May 2001 19:11:22 -0000 Issue 670
>>
>>
>>
>> php-general Digest 6 May 2001 19:11:22 -0000 Issue 670
>>
>> Topics (messages 51587 through 51649):
>>
>> IIS instead of PWS!!! what else can i do..
>> 51587 by: Thomas Edison Jr.
>> 51588 by: Zak Greant
>> 51591 by: Thomas Edison Jr.
>> 51592 by: Thomas Edison Jr.
>> 51593 by: Zak Greant
>> 51594 by: Alexander Skwar
>>
>> Re: PHP on PWS not working!
>> 51589 by: Thomas Edison Jr.
>> 51590 by: Thomas Edison Jr.
>> 51600 by: Phil Driscoll
>> 51640 by: Thomas Edison Jr.
>> 51644 by: Phil Driscoll
>>
>> Re: Sorry, what is "PWS"
>> 51595 by: Alexander Skwar
>>
>> Re: "Free" Database Design Program
>> 51596 by: Andrzej Swedrzynski
>>
>> Novedades en Gordos.com
>> 51597 by: Gordos.com
>>
>> PHP as apache module and security.
>> 51598 by: Andrzej Swedrzynski
>> 51607 by: Estelle Martin
>> 51609 by: Andrzej Swedrzynski
>>
>> Re: nslookup function ?
>> 51599 by: Tom Carter
>>
>> Complete Newbie
>> 51601 by: biscut
>>
>> What is msvcr70.dll??
>> 51602 by: Ermanno Iannacci
>>
>> Re: PEAR where should I start?
>> 51603 by: Gyozo Papp
>>
>> Image displaying problem
>> 51604 by: Estelle Martin
>>
>> Re: class (not class instance) variables
>> 51605 by: Gyozo Papp
>>
>> Re: quicker query?
>> 51606 by: Gyozo Papp
>>
>> searching a MySQL database
>> 51608 by: Jamie Saunders
>> 51620 by: bill
>> 51623 by: John Vanderbeck
>>
>> Insert data into mysql table
>> 51610 by: Mohamedou
>>
>> Re: wordwrap
>> 51611 by: Yasuo Ohgaki
>>
>> php4apachi.dll
>> 51612 by: Darren
>>
>> best ide for windows
>> 51613 by: Alexander Bierbrauer
>> 51615 by: Gyozo Papp
>> 51617 by: Geir Eivind Mork
>> 51618 by: John Vanderbeck
>> 51626 by: Henrik Hansen
>> 51628 by: Andrzej Swedrzynski
>> 51629 by: Gyozo Papp
>> 51630 by: Alex Piaz
>> 51633 by: Alexander Skwar
>> 51634 by: Bjorn Sodergren
>> 51635 by: Andrzej Swedrzynski
>> 51637 by: John Vanderbeck
>> 51639 by: Andrzej Swedrzynski
>>
>> php.exe [filename .php] vs. run [filename.php] via webserver
>> 51614 by: Art
>>
>> Install problems with PHP and GD
>> 51616 by: John Vanderbeck
>>
>> if string contains...
>> 51619 by: Jamie Saunders
>> 51621 by: Alvin Tan
>> 51622 by: Gyozo Papp
>>
>> Slightly OT - Backing up mySQL...
>> 51624 by: Nick Terzich
>> 51625 by: Felix Kronlage
>> 51627 by: Henrik Hansen
>>
>> Re: simple database extraction problem :(
>> 51631 by: Manuel Lemos
>>
>> Can php give me row number?
>> 51632 by: Jan Grafstrvm
>> 51636 by: Gyozo Papp
>> 51642 by: Stephan Ahonen
>>
>> Flash/PHP/MySQL
>> 51638 by: FredrikAT
>> 51641 by: Eduardo Pirez Jover
>>
>> Passing variables to another page - newbie
>> 51643 by: Dean Martin
>> 51645 by: Jack Dempsey
>> 51646 by: John Vanderbeck
>> 51647 by: tcuhost.hotmail.com
>>
>> [OT?] permission denied[OT?]
>> 51648 by: Alexander Bierbrauer
>>
>> file() shooting blanks
>> 51649 by: Jay Lepore
>>
>> Administrivia:
>>
>> To subscribe to the digest, e-mail:
>> [EMAIL PROTECTED]
>>
>> To unsubscribe from the digest, e-mail:
>> [EMAIL PROTECTED]
>>
>> To post to the list, e-mail:
>> [EMAIL PROTECTED]
>>
>>
>> ----------------------------------------------------------------------
>>
>
>
>--
>PHP General Mailing List (http://www.php.net/)
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>To contact the list administrators, e-mail: [EMAIL PROTECTED]
>
>--
>PHP General Mailing List (http://www.php.net/)
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>To contact the list administrators, e-mail: [EMAIL PROTECTED]
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]