■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■               CGI3分クッキング                                  Vol:044                          発行日: 1999年12月21日                        総発行部数:     1931部                            (1999年12月20日現在) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- ●もう、牛なしでは生きていけない・・・  京都で一番おいしい牛肉に選ばれました。  お正月は「いづつ屋」のお肉だね!  http://www.tanba-izutsuya.com/ --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆目次◆ ●Web新撰組ニュース ●今日の献立:熱血!検索君 ●予告 ●はぎちゃん今日のひとこと ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆PR◆-------------------------------------------------------------------- 大人の女性のニキビ対策に。100%オイルカットの3ステップで健やかな肌へ。 オルビスのクリアシリーズミニセット 1680円←初回購入特典さらに300円引き! click< http://a.clickincome.net/md/dk?mid=e01606c2e2a6bb19677f81173f8ba5e8 > --------------------------------------------------------------------◆PR◆ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ●Web新撰組ニュース   メールを使った新しい遊びを追及する「メールで遊ぼう!」。   出会いの広場「みんなの掲示板」も登場!   http://www.web-kyoto.com/vmail/   へGO!   Web新撰組メンバー執筆のCGI参考書。   「Perlで作る楽しいCGI」は、エーアイ出版のエーアイムックNo.237。   内容についての御質問は、新撰組ML(http://www.web-kyoto.com/ml/)へ。 ●今日の献立:データ変更その1   お知らせです。   バックナンバーを一気にアップしました。以上!   で、今回から、データ変更・削除部分の作成です。   データを変更するSpriteコマンドは、 update データベース名 set KEY=VALUE where (KEY = VALUE)   です。   例えば、book.dbのtitleが'美徳のよろめき'のデータのうち、syuppanを '萩原書店'に変更したい場合、 update book.db set syuppan='萩原書店' where (title = '美徳のよろめき')   となります。   変更出来るデータは1度に1カラム分だけですので、他に、autherを変更し たければ、再度updateコマンドで変更します。 update book.db set auther='三島由紀夫' where (title = '美徳のよろめき')   てな具合です。   where 〜 は、検索の時に使いましたね。whereの後に書いた検索条件で検索 してくれる、という書式でした。 select * from book.db where (title = '美徳のよろめき')   てな具合に使いました。   updateの場合は、whereの後に書いた検索条件にひっかかったデータを変更し ます。ですから、whereの後には、変更したいデータが必ず引っ掛かるような検索 条件を書かなければなりません。   そこで・・・・1つ問題が生じます。   例えば、'美徳のよろめき'が複数の出版社から出版されていたりする場合、変 更したいデータを確実に得る事が難しくなります。   そこで!   またまたですが、今までのやり方にちょっと問題があったという事で、CGIと データを変更したいと思います。   具体的には、データの最初に、データ番号を振ります。そうすれば、データ番 号1番の'美徳のよろめき'とデータ番号2番の'美徳のよろめき'を確実に区別する 事が出来ます。 ◇またまた変更 book.dbは、このようになります。 ----------------------------------------------- dnum;title;title_kana;author;author_kana;honyaku;syuurokusaki; syuurokusaki_kana;syuuroku;syuuroku_kana;country;syuppan;date;price;ISBN; group;kounyu;URL;URL_ALT;note -----------------------------------------------   先頭にdnumという項目をつけました。これが、データ番号になります。   ここでは3行に分けて書きましたが、必ず1行に全部書いて下さい。 sub InputDataのデータ入力部分 ----------------------------------------------- $rdb = new Sprite(); $rdb->set_delimiter ('Read', ';'); $rdb->set_delimiter ('Write', ';'); @data = $rdb->sql("select dnum from $DBFile"); $status=shift(@data); if($status == 1){ @data = sort bynumber @data; $newnum = $data[$#data]; $newnum++; }else{ &hserror(130,'データ番号を取得出来ませんでした'); } $status=$rdb->sql(<close ("$DBFile"); ----------------------------------------------- @data = $rdb->sql("select dnum from $DBFile");   で、あらかじめ、データベースからデータ番号だけ取得し、新しいデータ番号 を作ります。   データ入力にも、dnumと$newnumを加えました。 sub InputDataのデータ入力結果表示部分 ----------------------------------------------- -----------------------------------------------   題名の前に、データ番号を加えました。 sub SerchValuesの検索結果表示部分 ----------------------------------------------- if($status == 1){ if(@data <= 0){ print "該当するデータはありません\n"; }else{ foreach $line (@data) { ($dnum,$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, $db_ISBN,$db_group,$db_kounyu,$db_URL,$db_URL_ALT, $db_note)=split(/\0/,$line); $db_author =~ s/,/
/g; $db_author_kana =~ s/,/
/g; $db_honyaku =~ s/,/
/g; $db_syuurokusaki =~ s/,/
/g; $db_syuurokusaki_kana =~ s/,/
/g; $db_syuuroku =~ s/,/
/g; $db_syuuroku_kana =~ s/,/
/g; $db_country =~ s/,/
/g; print <<"EOL";
データ番号 $newnum
題名 $title
題名よみがな $title_kana
-----------------------------------------------   $dnumを加えました。 bynumberサブルーチン ----------------------------------------------- sub bynumber { $a <=> $b; } -----------------------------------------------   データ番号のソートに使うサブルーチンです。一番最後に加えて下さい。   以上!   では、次回は本当にデータ変更部分に入ります。   こりゃ、本当に来年も続くな。。。。。。と思いつつ、続く ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆予告◆------------------------------------------------------------------ ●次回こそは、データ変更部分に入ります ------------------------------------------------------------------◆予告◆ ◆PR◆-------------------------------------------------------------------- ★女性の健康と美しさは、1ヵ月ごとの♪体のリズム♪と深く関わっています。 ☆生体リズムを整えるやさしいサプリメント。ファンケルから新発売です。 click< http://a.clickincome.net/md/dk?mid=ea07a093f0e01448d4335945c08cafbd > ///////// やりたいって言ったら、今すぐやりたいんだい!! いや〜んえっちぃ〜〜、、、じゃないよ、ゲームのお話し。 欲しいソフトが発売日に手元に届きます。こりゃええわい。 てなわけで、こちらにどうぞ。 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 に、削除及び登録フォームを用意致しております。 ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ◆はぎちゃん今日のひとこと◆------------------------------------------  ●大掃除   我が家では、毎年12月のはじめに大掃除をするのですが、今年は   お仕事が忙しくて、今日、これから大掃除します。   むちゃくちゃ汚い部屋なので、これがキレイになるとは思えません。   だれか、わたしの部屋を片づけて下さい。 ------------------------------------------◆はぎちゃん今日のひとこと◆ ◆お願い◆ このマガジンについてのお問い合わせは、WEB新撰組メーリングリストで、 お願い致します。 はぎちゃんについての、麗しいお嬢様からのお問い合わせがないので寂しいです。 参加方法は、 http://www.web-kyoto.com/ml/ を参考にして下さい。 ◆担当者◆ 本文文責    :Web新撰組プログラマー萩原逸郎(はぎちゃん) Web新撰組  :http://www.web-kyoto.com/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
データ番号$dnum
題名$db_title
題名よみがな$db_title_kana
作者$db_author