Perl...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');
Should do the jobuse 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";
Hope it helps
UnderMine
Update: username and referral were swaped around.. think referral should be called referrer
In reply to Re: Building a List
by UnderMine
in thread Building a List
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |