初心者だけどPerlが大好き

コードが世界を変える!

簡単検索エンジン

db3.cgi とします

#!D:/xampp/perl/bin/perl
use CGI;
use DBI;
use utf8;
$q = new CGI;
print $q->header(-type =>'text/html',-charset => 'utf-8'),
$q->start_html(-title=>"Database Form"),
$q->h1(' データを検索します'),
$q->start_form,
$q->em("検索内容"),
$q->textfield(-name=>'search'),
$q->br,
$q->em("検索カテゴリを選んでください"),
$q->br,
$q->scrolling_list(-name=>'category',
 -values=>['name','email','subject','comments','uploaded_file'],
-size=>5,-multiple=>'true'),
$q->p,
$q->reset,
$q->submit(-name =>'Action', -value =>'検索'),
$q->submit(-name =>'Action', -value =>'Scream');
$q->end_form;
if($q ->param('search')){ &searchform;}
sub searchform{
$dbname = "trinity777";
$user = "root";
$passwd = "あなたの決めたパスワードにしてね";
$tbname = "cgipm";
$host = "localhost";
$mysearch=$q ->param('search');
$mycategory=$q ->param('category');
# DBに接続
$dbh=DBI->connect("DBI:mysql:$dbname; host=$host", $user, $passwd) 
or die $DBI::errstr;
$dbh->do("SET NAMES utf8");
# SQL実行
$sth = $dbh->prepare(" SELECT * FROM  $tbname WHERE $mycategory LIKE '%$mysearch%' ");
if(!$sth->execute){print "SQL失敗\n";exit;}
print $q->start_table({-border=>1}),
$q->start_Tr,
$q->th(['id', 'mtime','name','email','subject', 'comments','uploaded_file']);
while (@rec = $sth->fetchrow_array())
{
print $q->start_Tr,
$q->td([$rec[0],$rec[1],$rec[2],$rec[3],$rec[4],$rec[5],$rec[6]]);
}
# ステートメントハンドルクリア
$sth->finish;
# DB切断
$dbh->disconnect;}
print $q->end_html;