The following script, with some edits, has allowed access to a "LOCAL" mysql database. I have reworked it some to access a MySQL on another server I suppose I could transfer the script to that server for loading/execution, but I'd like to learn how one accesses a remote mySQL database (to facilitate building a shopping cart system.
Anyhow, when it executes, I can select the field I want to search on from a popup_menu, select "is" or "contains" and then enter the text I wat to search for. That part works. What doesn't work is that I receive simply a blank page for a display (all this beautiful color of 738C8C). Have I got the syntax for access to a remote database correct? TIA for any help... ----------------- #!/usr/bin/perl -w # CGI to select data from a SQL database use CGI; use strict; use DBI; my $q = new CGI; #Definitions -unique to each table, user, etc. my $db = "the_plant_database"; my $table = "da_table"; my $host = "201.201.201.21"; my $user = "mysql"; my $password = "mypassword"; # This is the main branch. The first time through # display the form to the user; when the user submits # the form then we process the input if ($q->param('field') eq "") {&printform()} else {&results()} sub printform { print "Content-Type: text/html\n\n"; # print $q->header; print $q->start_html(-title=>'MySQL Plant Database at Plants.com', -BGCOLOR=>'#738C8C', -TEXT=>'white'); print "<CENTER><H1>MySQL Plant Search - Da_List of Plants</H1></CENTER><BR>"; print $q->startform; print "<H2>Plants that match selection</H2><BR>"; print $q->popup_menu(-name => 'field', -values => ["ML_ID", "Cultivar", "Reg_Status","Section","Class","ML_ITG_ID","Registrant"], -default=> "Cultivar"); print $q->popup_menu(-name => 'searchtype', -values => ["is", "contains"], -default => "is"); print $q->textfield(-name =>"text", -size => 16), "<BR>"; print $q-> submit; print $q->endform; print $q->end_html; } sub results { print $q->header(); my $field = $q->param('field'); my $searchtype = $q->param('searchtype'); my $text = $q->param('text'); my @table=(); print $q->start_html(-title=>'Database Results', -BGCOLOR=>'#738C8C', -TEXT=>'white'); # Establish a connection with the database my $dbh = $drh->connect($host, $db, $table, $user, $password); # A simple check to see if we connected if (!$dbh) { print "Cannot connect: $DBI::errstr<BR>"; print $q->end_html; die; } # Build and execute the SQL statement my ($SQLstatement); if ($searchtype eq "contains") { $SQLstatement = "select ML_ID, Cultivar, Reg_Status, Section, Class, ML_ITG_ID, Registrant from $table where $field like \"%$text%\""; } else { $SQLstatement = "select ML_ID, Cultivar, Reg_Status, Section, Class, ML_ITG_ID, Registrant from $table where $field = \"$text\""; } my $sth = $dbh->prepare($SQLstatement); my $howmany = $sth->execute; # Display an error message if we can't find any matches if ($howmany eq "OEO") { print $q-h3("<font color='red'> Couldn't match $text in database</font>"); die; } print "$howmany matches found in database<br><br>"; push (@table,$q->th(["ML_ID", "Cultivar", "Reg_Status", "Section","Class","ML_ITG_ID","Registrant"])); # Loop through all the matches and store them in @table for (my $i = 0; $i < $howmany; $i++) { my ($SQLML_ID, $SQLCultivar, $SQLReg_Status, $SQLSection, $SQLClass, $SQLML_ITG_ID, $SQLRegistrant) = $sth->fetchrow_array; push (@table,$q->td([$SQLML_ID, $SQLCultivar, $SQLReg_Status, $SQLSection, $SQLClass, $SQLML_ITG_ID, $SQLRegistrant])); } # Print the table of data we received from the mySQL database. print $q->table({-border => 1, -align => "center"},$q->TR(\@table)); print $q->end_html; } -- Andrew Lietzow The ACL Group, Inc. --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php