couldn't this be accomplished with a Left Join? Depending on how your
tables are arranged you should be able to get all (sub)sub-names out and in
the same result set using the top_name with a Left Join. any key that
relates to the parent key would be returned.
it looks like you have them all in the same table thoughwhich may
furuther complicate things, if so, how is the relatoinship maintained in
the table(s)?
Jeff
Peter Sharpe
[EMAIL PROTECTED]To: [EMAIL PROTECTED]
.comcc:
Subject: [PHP-DB] foreach() db
brainiacs please help?
09/09/2003 03:17
PM
Please respond to
Peter Sharpe
I have a database full of names. each name could be linked to any number of
sub-names, each sub-name could be linked to any number of sub-sub-names, to
infinity (unlikely but possible).
I need to iterate through this nest of names starting with a main name;
lets
call the main name Peter. Peter could have John, Tim Mike working for
him.
Tim could have Greg working for him.
function select_names($current_top_name){
global $dbh;
$sql =
SELECT
name_id_fk
FROM
name_relation
WHERE
top_name_id_fk = '.$current_top_name.'
;
$rs = pg_query($dbh, $sql);
if(($num_rows = pg_num_rows($rs)) 0){
for($i=0;$i$num_rows;$i++){
$row = pg_fetch_row($rs, $i, PGSQL_ASSOC);
$associated_names[] = $row['name_id_fk'];
}
pg_free_result($rs);
} // end if(($num_rows = pg_num_rows($rs)) 0)
return $associated_names;
} // end function select_names()
$current_top_name = 'Peter';
while(!$stop){
$assoc_names = select_names($current_top_name);
foreach($assoc_names as $key = $val){
print($val);
$more_assoc_names = select_names($val);
if($more_assoc_names){
ARG HELP IM NOT SMART ENOUGH
}
} // end while(!$stop)
} // end foreach($assoc_names as $key = $val)
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php