in reply to Building a List

SQL ...
create table test_members ( username varchar(20), referral varchar(20)); insert into test_members values ('Jack',null); insert into test_members values ('Bob','Jack'); insert into test_members values ('Joe','Bob'); insert into test_members values ('Henry','Joe'); insert into test_members values ('Gabe','Jack'); insert into test_members values ('Pete','Gabe'); insert into test_members values ('Tim','Gabe');
Perl...
use strict; use DBI; my $database='db'; my $username='user'; my $password='pass'; my $dbh=DBI->connect('DBI:mysql:database='.$database, $username,$password); print 'dbh error' if (!$dbh); my @ref = (); my @names = ('Jack'); my $base_sql=q{SELECT username FROM test_members WHERE referral }; while (scalar(@names)) { my $sql=$base_sql.($#names?'in ('.join(',',map('?',@names)).')':'=?' +); print "$sql\n"; my $sth=$dbh->prepare($sql); print 'sth error' if (!$sth); my $rv=$sth->execute(@names); print 'rv error' if (!$rv); my $res = $sth->fetchall_arrayref(); @names=map($res->[$_][0],0..$#$res); push @ref, join '|',@names if (scalar(@names)); } print join(',',@ref),"\n"; print "finished\n";
Should do the job

Hope it helps
UnderMine

Update: username and referral were swaped around.. think referral should be called referrer

Replies are listed 'Best First'.
Re: Re: Building a List
by Anonymous Monk on Nov 23, 2002 at 15:41 UTC
    When I run it @refer contains nothing?
      did you check @ref?

      UnderMine

        yeat hats what I ment sorry!