david.jackson has asked for the wisdom of the Perl Monks concerning the following question:

Greetings --
What I'm trying do here is generate a html table using
CGI + Mysql?  
--Thanks David
#!/bin/perl -w use DBI; use diagnostics; use strict; use CGI::Pretty qw(:all); my ($dbh,$sth); my ($dbname)="test"; my ($login)="who_am_i"; my ($password) ="secret_word"; my ($query); my ($cl_first_name); # Define query $query=qq(SELECT cl_first_name from client); # $dbh = DBI->connect("DBI:mysql:$dbname",$login,$password) or die "Can't connect to $dbh: $dbh->errstr\n"; $sth = $dbh->prepare("$query") or die "Can't connect to $dbh: $sth->errstr\n"; $sth-> execute() or die "Can't connect to $dbh: $sth->errstr\n"; print start_html({-title=>"CGI Table"}); print table( while (($cl_first_name) = $sth -> fetchrow_array()) { Tr([td([$cl_first_name])]) } ); $dbh->disconnect(); print end_html;

Title =~ s/GGI/CGI/; - 2002-02-24 dvergin

Replies are listed 'Best First'.
(jeffa) Re: CGI+MySQL table
by jeffa (Bishop) on Feb 25, 2002 at 03:24 UTC
    You didn't mention any errors, but it looks like you forgot to print a header - add this to the line that prints the output of start_html():
    print header, start_html({-title=>"CGI Table"});
    Also check out DBIx::XHTML_Table:
    use DBIx::XHTML_Table; my $table = DBIx::XHTML_Table->new("DBI:mysql:$dbname",$login,$passwor +d); $table->exec_query($query); print $table->output();
    (and yes, you will need to print header() and start_html() as well)

    jeffa

    L-LL-L--L-LL-L--L-LL-L--
    -R--R-RR-R--R-RR-R--R-RR
    B--B--B--B--B--B--B--B--
    H---H---H---H---H---H---
    (the triplet paradiddle with high-hat)
    

    Title =~ s/GGI/CGI/; - 2002-02-24 dvergin