RE: [PHP-DB] Calling functions recursively: recursive PHP functions

2003-02-01 Thread Kevin Gordon
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




Re: [PHP-DB] Calling functions recursively: recursive PHP functions

2003-01-26 Thread Kevin Gordon
Roberto  Jason thank you for your comments.

Please note the question at the end of this email.

I searched on recursive PHP functions and found: 
[thelist] recursive PHP functions
Rob Wilson thelist at lists.evolt.org
Mon Sep 16 11:00:01 2002

* Previous message: [thelist] recursive PHP functions
* Next message: [thelist] pop up window for image without MSIE image
resize
* Return to the message index sorted by: [ date ] [ thread ] [
subject ] [ author ]

That should read

?php
function recursive ($n)
{
if ($n  10)
{
return $n;
}
echo N = . $n . BR;
$n++;
return recursive ($n);
}
echo The result:.recursive(1).br;
?

With the important line being the :

return recursive ( $n );

This allows you to unwind the recursion correctly.

HTH

Rob
*
Under www.zend.com/manual   chapter 8 Variable scope a mention of
recursion:
 Static variables also provide one way to deal with recursive functions.
A recursive function is one which calls itself. Care must be taken when
writing a recursive function because it is possible to make it recurse
indefinitely. You must make sure you have an adequate way of terminating
the recursion. The following simple function recursively counts to 10,
using the static variable $count to know when to stop:

?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 ();

Comments please.
Kevin Gordon





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




RE: [PHP-DB] Calling functions recursively: recursive PHP functions

2003-01-26 Thread John W. Holmes
[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