I'm not sure what this is doing, but is row4[0] your key and row4[1] your
value?
seems like this:
while ((@row4) = $sth4->fetchrow_array) {
push @ids, "@row4[0]";
if ($listcounter == 0) {
$hashstring .= "@row4[0],'" . "@row4[1]'";
}
else {
$hashstring .= ",@row4[0],'" . "@row4[1]'";
};
$listcounter = $listcounter + 1;
};
Might be better off as:
%somelabels =();
while (@row4 = $sth4->fetchrow_array()) {
push(@ids,"$row4[0]");
if ($listcounter == 0) {
$somelabels{$row4[0]}=$row4[1];
}
else {
#note sure why we dupe here
$somelabels{$row4[0]}=$row4[1];
};
$listcounter + 1;
};
Just a thought..
-Chris
>> -----Original Message-----
>> From: Alfred de Jager [mailto:[EMAIL PROTECTED]]
>> Sent: Tuesday, November 19, 2002 4:26 AM
>> To: Hardy Merrill; [EMAIL PROTECTED]
>> Subject: Binding a hash to a popup button
>>
>>
>> Dear List,
>>
>> I try to bind a hash containing the result of a query to a popup button.
>> If I make the hash 'manually' it is not using the result of my
>> selection than
>> everything works fine.
>> If I populate the hash from the selection than it will not
>> display. So I presume
>> that my hash creation contains an error.
>> Can anybody explain me the 'trick' to populate a hash from a
>> database selection?
>>
>> I am using Perl 5.6.1 on Linux 8.1 and Apache the database is
>> Oracle 8.1.6.
>> Please find the piece of code hereunder, I would be most obliged.
>>
>> $sth4 = $dbh->prepare ( qq {$sqlcon});
>> $rc4 = $sth4->execute
>> or carp "dbh->errstr Can not select data for listbox $\n";
>> $listcounter = 0;
>> $hashstring = "";
>> $value = 4;
>> while ((@row4) = $sth4->fetchrow_array) {
>> push @ids, "@row4[0]";
>> if ($listcounter == 0) {
>> $hashstring .= "@row4[0],'" . "@row4[1]'";
>> }
>> else {
>> $hashstring .= ",@row4[0],'" . "@row4[1]'";
>> };
>> $listcounter = $listcounter + 1;
>> };
>> %somelabels = ($hashstring);
>> ## %somelabels = (2,'Spot',3,'Eurimage',4,'Test 4');
>> ## this works, it
>> is the labels are shown
>> print $query->popup_menu ($columnname
>> ,\@ids
>> ,"$value"
>> ,\%somelabels);
>> ## the result shows as labels only the content of list "ids"
>> splice @ids, 0;
>> $listbox = 0;
>> };
>> };
>>
>> Regards Alfred de Jager
>>
>>