Thanks John. Your comment helped me through. I used a static variable
for the array, array_merge_recursive() function to accumulate the
foreign keys and $this->kgforeignkeys as a recursive function in a loop.
This all works ok!

        function kgforeignkeys($tablename = "" ) 
                {
                static $totalkgArr;
                if ( $this->connection && $tablename != "" ) 
                        {
                        $keylist = "";
                        $sql = "SELECT conname,
  pg_catalog.pg_get_constraintdef(oid) as condef 
                                                FROM pg_catalog.pg_constraint r
                                                WHERE r.conrelid = (SELECT c.oid
                                                        FROM pg_catalog.pg_class c
                                                    LEFT JOIN pg_catalog.pg_namespace 
n 
                                                        ON n.oid = c.relnamespace
                                                        WHERE 
pg_catalog.pg_table_is_visible(c.oid)
                                                        AND c.relname ~ '^" . 
$tablename . "$' )
                                                AND r.contype = 'f'";

                        $keylist = pg_query ($this->connection, $sql);
                        $num_rows = pg_num_rows($keylist);
                        for ($i=0; $i < $num_rows; $i++) 
                                {
                                $r = pg_fetch_row($keylist);
//                              echo "Field: $r[0], $r[1] </br>";
                                $phrase = split("\(|\)", $r[1]);
//                              echo "Phrase: $phrase[0], $phrase[1], $phrase[2], 
$phrase[3],
$phrase[4] </br>";
                                $kgArr[$i][0][0] = $tablename;
                                $word1 = split(",", $phrase[1]);
                                for ($j=1; $j <= count($word1); $j++)
                                        {
                                        $kgArr[$i][0][$j] = trim($word1[$j - 1]);
                                        }
                                $kgArr[$i][1][0] = trim(Substr($phrase[2], 
strrpos($phrase[2], "
")));
                                $word2 = split(",", $phrase[3]);
                                for ($j=1; $j <= count($word2); $j++)
                                        {
                                        $kgArr[$i][1][$j] = trim($word2[$j - 1]);
                                        }
                                }
                        pg_free_result ($keylist);
                        $totalkgArr = array_merge_recursive($totalkgArr, $kgArr );
                        for ($h=0; $h < $num_rows; $h++) 
                                {
                                $totalkgArr = $this->kgforeignkeys( $kgArr[$h][1][0] );
                                }
                        return $totalkgArr;
                        }
                else 
                        {
                        echo 'Failed to obtain the foreign keys in ' . $tablename . 
'<br />';
                        return $totalkgArr;
                        }
                }


On Mon, 2003-01-27 at 19:57, John W. Holmes wrote:
> [snip]
> > <?php
> > function Test()
> > {
> >     static $count = 0;
> > 
> >     $count++;
> >     echo $count;
> >     if ($count < 10) {
> >         Test ();
> >     }
> >     $count--;
> > }
> > ?>
> >
> ************************************************************************
> **
> > *
> > Interesting but I am still lost as I need some help with
> > methods/functions within objects:
> > In the above example do I need to access Test() by:
> > 
> >     if ($count < 10) {
> >         this->Test ();
> 
> Yes, without the space: $this->Test();
> 
> ---John W. Holmes...
> 
> PHP Architect - A monthly magazine for PHP Professionals. Get your copy
> today. http://www.phparch.com/
> 
> 
> 



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

Reply via email to