gogoglou has asked for the wisdom of the Perl Monks concerning the following question:

Dear Monks I have the following script, that reads a list of columns from my database and then geenrates a list of checkboxes and two submit buttons in order for me to send the selected checkboxes names as parameters to a second script my first script is :
#!/usr/bin/perl use DBI; use CGI ':standard'; use strict; use warnings; my $q= CGI->new(); print header, start_html('Advanced Search'); # Connect to the database my $dbh = DBI->connect('DBI:mysql:mirnas', 'root', 'pass') or die "Couldn't open database: $DBI::errstr; stopped"; # Getting all the column names and creating checkboxes for them my $table = '07_11_09'; my $sth = $dbh->prepare("SELECT * FROM $table where 1=0 "); $sth->execute; my @cols = @{$sth->{NAME}}; # or NAME_lc if needed #print "@cols\n"; $sth->finish; #creating and printing the checkboxes print checkbox_group(-name=>'fields_to_search', -values=>\@cols # Your array above ); #storing the parameters from the checkboxes my @fields_to_search=param('fields_to_search'); #creating the submit boxes print'<FORM ACTION="http://sirocco/cgi-bin/tissue_search.pl" METHOD="POST">'; #here it submits the sel +ected parameters to a search form print br, '<INPUT TYPE = "SUBMIT"VALUE="Click To Submit">'; print '<INPUT TYPE="RESET"VALUE=Clear>'; print '</FORM>', end_html;
I want my second script , for starters to just print which tissue names I have selected. I am fdoing the following, but to no result, it prints that I have selected 0 tissues
#!/usr/bin/perl use strict; use CGI ':standard'; use DBI; my $q= CGI->new(); print $q->header(), $q->start_html(); my $dbh = DBI->connect('DBI:mysql:mirnas', 'root', 'bi0u90ee') or die "Couldn't open database: $DBI::errstr; stopped"; # Getting all the column names and creating checkboxes for them my $table = '07_11_09'; my $sth = $dbh->prepare("SELECT * FROM $table where 1=0 "); $sth->execute; my @cols = @{$sth->{NAME}}; # or NAME_lc if needed #print "@cols\n"; $sth->finish; my @responce; my $tissues; @responce = param('fields_to_search'); $tissues = $#responce +1; print "<FONT SIZE =4> You have selected the following $tissues tissues +"; print "</FONT>", end_html;
Could somebody notice and let me know what I am doing wrong? I am pretty sure that I am not passing the correct parameters around Thank you all for your help

Replies are listed 'Best First'.
Re: new to cgi and problems
by marto (Cardinal) on Mar 25, 2010 at 13:23 UTC

    This seems to follow on from your pervious post, there is no need to start a new thread with each subsequent problem your script has.

    You should complete Ovid's CGI course as in introduction to CGI, and to learn how to debug your problems. Then check out the tutorials section. There is a whole section on Web Programming.

    Update: as previously advised, learning more about DBI would be a good idea also.