■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■               CGI3分クッキング                                  Vol:032                          発行日: 1999年10月29日                        総発行部数:     1525部                            (1999年10月28日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●おいしいお肉でお馴染の「いづつ屋」では、  只今100名様限定キャンペーン中。  牛タンのみそ漬けを1000円にてご奉仕中!  めちゃくちゃ美味しいお肉を、是非ご賞味下さいませ。  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:解説篇 ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●2000年カウントダウンプレゼントキャンペーン実施中● もれなくスカパーまでついてきちゃうお特なプレゼントキャンペーン。 click< http://a.clickincome.net/md/dk?mid=6fc708378f23b98c8eef56e8f0aa8343 > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース   メールを使った新しい遊びを追及する「メールで遊ぼう!」。   出会いの広場「みんなの掲示板」も登場!   http://www.web-kyoto.com/vmail/   へGO!   Web新撰組メンバー執筆のCGI参考書。   「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。   内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:解説篇   前回のサンプルの動きを解説します   データファイルはこんなものでした(ファイル名phone.db)。 name,age,phone,note はぎちゃん,36,0901111111111,かっちょいい 鷹,36,090222222222222,かっちょわるい   サンプルスクリプトは、こんな感じ(ファイル名test1.pl) -------------------------------------------------- 1:#!/usr/local/bin/perl 2: 3:use Sprite; 4: 5:$query = $ARGV[0]; 6: 7:$rdb = new Sprite; 8:$rdb->set_os ('UNIX'); 9:$rdb->set_delimiter('Read',','); 10: 11:@data = $rdb->sql("$query"); 12: 13:$status=shift(@data); 14: 15: 16:if($status == 1){ 17: foreach $line (@data) { 18: $line =~ s/\0/\,/g; 19: print $line,"\n"; 20: } 21:}else{ 22 print 'error',"\n"; 23:} 24:$rdb->close(); 25: 26:exit; -------------------------------------------------- ・use Sprite;   2行目のuse Sprite;でSpriteを読み込みます。 ・$query = $ARGV[0];   これは検索用のクエリーを標準入力から読み込みます。 ・$rdb = new Sprite;   $rdbという名前でSprite用のデータベース変数を用意します。 ・$rdb->set_os ('UNIX');   サーバーOSをUNIXに指定します。 ・$rdb->set_delimiter('Read',',');   データファイル内のデータの区切り記号を,に指定します。   もし;区切りであれば、$rdb->set_delimiter('Read',';');とします。 ・@data = $rdb->sql("$query");   クエリーでデータを検索し、検索結果を@data変数に入れます。   検索結果は、このように配列として返って来ます。 ・$status=shift(@data);   データの検索結果の最初には、検索ステータスが入ります。   検索が正常に行われれば1、行われなければ0が$data[0]に入ります。   ここでは、shift(@data);で@dataの最初のデータを切り取り、$status変数に 代入しています。   クエリーに間違いが有る場合は正常な検索が出来ませんので、このようなしく みでチェックをかけるわけです。 ・if($status == 1){ foreach $line (@data) { $line =~ s/\0/\,/g; print $line,"\n"; } }   ステータスが1であれば、@dataの中身を検索します。   $rdb->sql("$query");によって検索された結果は、\0(NULL)区切りで返ってき ます。そこで、$line =~ s/\0/\,/g;で\0を,に変換し、表示させます。 ・$rdb->close();   最後にデータベースを閉じます。   とまあ、このような形で実行されます。   次に、ためしに入力したクエリーの説明。 ・select * from phone.db where (name = 'はぎちゃん')   selectは、「検索せよ」という命令です。他に、新規入力、データ書き換え、 削除、等があります。   select * は、検索して返って来たデータのカラムを全て出してこい、という 命令になります。   例えば、nameとphoneだけを取り出したい場合は、   "select name,phone from phone.db where (name = 'はぎちゃん')"   と、表示したいカラム名を,区切りで書いてやります。   from phone.dbは、phone.dbから探してこい、という意味です。   whereは、以下の条件にマッチするものを、という意味で、その後に条件文を 書きます。   ですから、select * from phone.db where (name = 'はぎちゃん')は、   phone.dbの中から、nameカラムのデータがはぎちゃんであるデータ行を全て出 して来い、という意味になります。   次回は、これをCGIにしてみましょう。   ちょっと「熱血・検索くん」に近づいて来たぞ、、、と思いつつ続く ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●次回は、「熱血・検索くん」です。  (今回は「熱血・検索くん」の名をちょっと出してみました) ------------------------------------------------------------------◆予告◆ ◆PR◆--------------------------------------------------------------------      ◆◆WAKWAKで、世界のFM局を聴いてみよう!◆◆ 24Hリアルタイムで配信中!あなたのPCをインターナショナルFMラジオに! click< http://a.clickincome.net/md/dk?mid=8815f79f886b213e1afb12c79fd8be88 > やりたいって言ったら、今すぐやりたいんだい!! いや〜んえっちぃ〜〜、、、じゃないよ、ゲームのお話し。 欲しいソフトが発売日に手元に届きます。こりゃええわい。 てなわけで、こちらにどうぞ。 http://takafumi.grabit.net/powersoft/ --------------------------------------------------------------------◆PR◆ このメールマガジンは、 Subject部が、CGI3分クッキング【Vol.番号】は、まぐまぐ様にて、 ( http://www.mag2.com/ ) Subject部が、CGI3分クッキング Vol.【番号】は、Macky様にて、 ( http://macky.nifty.ne.jp/ ) Subject部が、CGI3分クッキング番号 は、Pubzine様にて、 配布致しています。 メールマガジンの解除について まぐまぐ様の解除は、 http://www.web-kyoto.com/dp/3min/ に、削除及び登録フォームを用意致しております。 Macky様の解除は、 http://macky.nifty.ne.jp/ を参考して下さい。 Pubzine様の解除は、 http://www.pubzine.com/srchid.asp?keyword=1379 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆はぎちゃん今日のひとこと◆------------------------------------------  ●メーラーをOutlookExpress5にしました。   Mac版はアイコンがWindows版と違ってかわいい。   機能もたくさんあるみたい。   ・・・・   でも使いこなせてない・・・・ ------------------------------------------◆はぎちゃん今日のひとこと◆ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 はぎちゃんについて、麗しいお嬢様からのお問い合わせもお待ちしております。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎 Web新撰組  :http://www.web-kyoto.com/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■