■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ CGI3分クッキング Vol:036 発行日: 1999年11月12日 総発行部数: 1602部 (1999年11月11日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●おいしいお肉でお馴染の「いづつ屋」では、 只今100名様限定キャンペーン中。 牛タンのみそ漬けを1000円にてご奉仕中! めちゃくちゃ美味しいお肉を、是非ご賞味下さいませ。 http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:検索CGIを作りましょ(その2) ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ◆ いまからでも間に合う 「SE・プラグラマーを目指して頂ける方」大募集!◆ ◆ 11月16日(火) ◆ 専門・短大・大学・中途の方を対象にセミナー開催! ◆ click< http://a.clickincome.net/md/dk?mid=dacdd53a9b97756d3d0dffefe6f4f62b > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース メールを使った新しい遊びを追及する「メールで遊ぼう!」。 出会いの広場「みんなの掲示板」も登場! http://www.web-kyoto.com/vmail/ へGO! Web新撰組メンバー執筆のCGI参考書。 「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。 内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:検索CGIを作りましょ(その2) 今回は検索部分を作っていきます。 ◇前回の続き。。。 ----------------------------------------------- 1:#!/usr/local/bin/perl 2: 3:use Sprite; #Spriteの読み込み 4:$CgiName='hserch.cgi'; #このCGIのファイル名 5:$CgiTitle='熱血!検索君'; #このCGIの名前 6:$DBFile='book.db'; #データファイル名 7: 8:%FORM=&GetFormdata; #フォームの内容を%FORMに入れる 9: 10:if($FORM{'action'}){ #actionによって動作を変える 11: $action=$FORM{'action'}; 12:}else{ 13: $action="show_serch_form"; 14:} 15: 16:if($action eq 'show_serch_form'){ 17: &ShowSerchForm; 18:}elsif($action eq 'serch'){ 19: &SerchValues; 20:} ----------------------------------------------- 16,17行目は検索フォーム表示です。 18,19行目は今回作る検索部分を呼びだします。 検索サブルーチンを作りましょう。 ----------------------------------------------- 1:sub SerchValues { 2: $title=$FORM{'title'} if($FORM{'title'}); #題名 3: $title_kana=$FORM{'title_kana'} if($FORM{'title_kana'}); #題名かな 4: $author=$FORM{'author'} if($FORM{'author'}); #作者 5: $author_kana=$FORM{'author_kana'} if($FORM{'author_kana'}); #作者かな 6: $group=$FORM{'group'} if($FORM{'group'}); #分類 7: $note=$FORM{'note'} if($FORM{'note'}); #備考 8: $sep1=$FORM{'sep1'}; #and/or 9: $sep2=$FORM{'sep2'}; 10: $sep3=$FORM{'sep3'}; 11: $sep4=$FORM{'sep4'}; 12: $sep5=$FORM{'sep5'}; 13: 14: 15: $query = 'select * from ' . $DBFile . ' '; 16: if($title){ 17: $query = $query . 'where (title =~ /' . $title . '/) '; 18: $query = $query . 'or (syuurokusaki =~ /' . $title . '/) or '; 19: $query = $query . '(syuuroku =~ /' . $title . '/) '; 20: $wherechk=1; 21: } 22: 23: if($title_kana){ 24: if($wherechk){ 25: $query = $query . $sep1 . ' (title_kana =~ /' . $title_kana . '/) '; 26: }else{ 27: $query = $query . 'where (title_kana =~ /' . $title_kana . '/) '; 28: } 29: $query = $query . 'or (syuurokusaki_kana =~ /' . $title_kana . '/) '; 30: $query = $query . 'or (syuuroku_kana =~ /' . $title_kana . '/) '; 31: $wherechk=1; 32: } 33: 34: if($author){ 35: if($wherechk){ 36: $query = $query . $sep2 . ' (author =~ /' . $author . '/) '; 37: }else{ 38: $query = $query . 'where (author =~ /' . $author . '/) '; 39: } 30: $wherechk=1; 31: } 32: 33: if($author_kana){ 34: if($wherechk){ 35: $query = $query . $sep3 . ' ($groupauthor_kana =~ /' . $author . '/) '; 36: }else{ 37: $query = $query . 'where (author_kana =~ /' . $author . '/) '; 38: } 39: $wherechk=1; 40: } 41: 42: if($group){ 43: if($wherechk){ 44: $query = $query . $sep4 . ' (group = "' . $group . '") '; 45: }else{ 46: $query = $query . 'where (group = "' . $group . '") '; 47: } 48: $wherechk=1; 49: } 50: 51: if($note){ 52: if($wherechk){ 53: $query = $query . $sep4 . ' (note =~ /' . $note . '/)'; 54: }else{ 55: $query = $query . 'where (note =~ /' . $note . '/)'; 56: } 57: } 58: 59: $rdb = new Sprite; 60: $rdb->set_os ('UNIX'); 61: $rdb->set_delimiter('Read',','); 62: 63: @data = $rdb->sql($query); 64: $status=shift(@data); 65: 66: print <<"EOL"; 67:Content-type: text/html 68: 69: 70:
71: 72:| 題名 | $db_title |
| 題名よみがな | $db_title_kana |
| 作者 | $db_author |
| 作者よみがな | $db_author_kana |
| 訳者 | $db_honyaku |
| 収録先 | $db_syuurokusaki |
| 収録先よみがな | $db_syuurokusaki_kana |
| 収録作品 | $db_syuuroku |
| 収録作品よみがな | $db_syuuroku_kana |
| 国名 | $db_country |
| 出版社 | $db_syuppan |
| 発行年月日 | $db_date |
| 値段 | $db_price |
| ISBN | $db_ISBN |
| 分類 | $db_group |
| 購入日 | $db_kounyu |
| 関連URL | $db_URL_ALT |
| 備考 | $db_note |