On 10/22/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Hi forum!!!
>
>   I am assigning a variable dynamically and using it in a query to
> fetch values from my database. Here is the pseudo code...
>
> ###########
> my $string ;
> my $q1 = "select * from bugs where target_milestone = ? and date
> between ? and ?;
> my $q2 = "select * from bugs where $string and target_milestone = ?
> and date between ? and ?;
>
> foreach my $q ($q1,$q2){
>   $stmt = $dbh->prepare($q1) or die ""; #####$dbh already has a valid
> handle
>   $stmt->execute()  or die "";
>
>   $string = "bug_id not in (1,2,3)"; ####  1,2,3  are eg. values which
> i get after process $q1 and i #use it in $q2
> }
>
> ##################################
>

Farily I don't understand for what you said from the codes above.
You don't need a for loop here,because your logic is not a loop-logic.
Replace the for loop with below,

# query for $q1
my $q1 = "select * from bugs where target_milestone = ? and date
between ? and ?";
my $stmt = $dbh->prepare($q1) or die $dbh->errstr;
$stmt->execute($v1,$v2,$v3)  or die $dbh->errstr; # v1,v2,v3 is
needed,they are the query conditions
my @result = $stmt->fetchrow_array;
$stmt->finish;

#create the string and query for $q2
my $string = "bug_id not in (" . join ',' , @result . ")";
my $q2 = "select * from bugs where $string and target_milestone = ?
and date between ? and ?";
$stmt = $dbh->prepare($q2) or die $dbh->errstr;
$stmt->execute($v1,$v2,$v3)  or die $dbh->errstr;
$stmt->finish;

Dont test it but I think it mostly will work fine.
Good luck!

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to