高機能検索専用データベース SJIS版


◆特徴

このCGIを扱うには、HTML(特にFORM)の知識が最低条件です。

CSVファイルがあれば、ホームページでデータベースとして公開することができます。

検索フォームを自由に作成することができ、検索結果の表示HTMLも編集することが出来ます。

本格的な検索専用データベースをホームページ上で公開したい場合に最適です。

一般的なCSVファイルに対応しています。
エクセルや三四郎等の表計算ソフトで作成したデータを
CSV形式で保存すれば、このCGIで使用できます。
CSVはセルの区切りにコンマを使用しているものに限ります。

またタブ区切りファイルにも対応しています。
タブ区切りファイルの方が検索スピードは若干速いかも知れません。

Ver 1.40 から データ登録数と該当件数を表示するようにしました。
ただし、表示件数を多く表示するように設定した場合、若干検索スピードが下がるかもしれません。
また検索対象データが何万とある物ですとかなり遅くなります。この場合はSQLなどの本物のデータベースシステムを利用してください。<もちろんこのCGIだけでも可能ですが・・・。

検索対象ファイルはSJISのみと成りました。(euc版も作成可能)

掲示板CGIなどのデータファイルをデータベースとして検索させるようにすると、過去ログの検索が簡単になったりします。(掲示板CGIにもよるが)

◆設置方法

サーバー設置例
ファイル名 パーミッション 転送モード 解説
database.cgi 755 アスキー CGIプログラム
data.csv   アスキー CSVデータファイル
jcode.pl   アスキー 日本語変換プログラム

◆CGIプログラムをテキストエディタで開き1行目をサーバーの設定に直してください。

◆CGIプログラムの設定項目を必要に応じて変更してください。

◆サーバー設置例を参考に各ファイルをFTPソフトでサーバーに設置してください。

◆CGIにブラウザからアクセスして動けば設置完了です。

◆仕様書 Ver1.00 の仕様とは異なりますのでご注意下さい。

検索するためのフォーム(input,select,textarea等)のname属性に型を指定する事で様々な検索機能を使う事が出来ます。

最初にFORM要素のaction属性にdatabase.cgiのURL、method属性にPOSTを指定します。
このFORM要素の中にINPUT要素やSELECT要素等を使って検索フォームを作り上げます。

行全体に有効な検索型

AND [key] 文字列検索型

行全体を検索対象にする場合は、フォームのname属性を「key」にしてください。
(AND検索)
タグ:<INPUT TYPE="text" NAME="key" SIZE="20">
行全体検索が対象

key の他に AND や and でも同じ働きをします。

OR [or] 文字列検索型

行全体をOR検索対象にする場合は、フォームのname属性を「or」にしてください。

or の他に OR でも同じ働きをします。

NOT[not] 文字列検索型

行全体をNOT検索対象にする場合は、フォームのname属性を「not」にしてください。

not の他に NOT でも同じ働きをします。

列に有効な検索型

AND [keys*] 文字列検索型

ある列を対象にAND検索を行います。フォームのname属性を[keys*]として、*に対象列番号を記入します。

CGI名で検索(AND検索)
タグ:<INPUT TYPE="text" NAME="keys2" SIZE="20">
2列目を検索対象にした場合

OR [or*] 文字列検索型

ある列を対象に OR 検索を行います。フォームのname属性を[or*]として、*に対象列番号を記入します。

NOT [not*] 文字列検索型

ある列を対象に NOT 検索を行います。フォームのname属性を[not*]として、*に対象列番号を記入します。

列の結合検索

AND OR NOT 対応

複数の列を1つとみなして検索します。

name="keys1,2,3"
name="not1,2,3"
name="or1,2,3"

一致 [equal*] 文字列検索型

ある列との一致を確かめる場合はフォームのname属性を[equal*]とし、*に列番号を記入します。


<select name="equal1" size="1">
<option>掲示板</option><option>アンケート</option>
</select>
1列目と一致するか比較する場合

以上 [up*] 数値検索型

ある列の数値が指定した数値以上かを比較する場合に使います。フォームのname属性を[up*]として、*に列番号を記入します。

以上
<select name="up3" size="1">
<option value="1000">\1,000</option>
<option value="2000">\2,000</option>
<option value="3000">\3,000</option>
<option value="4000">\4,000</option>
<option value="5000">\5,000</option>
</select>
3列目の数値が指定した数値以上か比較する場合

以下  [down*] 数値検索型

ある列の数値が指定した数値以下かを比較する場合に使います。フォームのname属性を[down*]として、*に列番号を記入します。

以下
<select name="down3" size="1">
<option value="1000">\1,000</option>
<option value="2000">\2,000</option>
<option value="3000">\3,000</option>
<option value="4000">\4,000</option>
<option value="5000">\5,000</option>
</select>
3列目の数値が指定した数値以下か比較する場合

その他検索フォームの作成をサポートする機能

結合 [join###] 補助型

複数のフォームの内容を結合したい場合に使います。連結したい複数あるフォームのname属性の先頭に[join]を追加します。

個人コード

個人コード<select name="joinkeys1" size="1">
<option>0</option><option>1</option><option>2</option><option>3</option>
<option>4</option><option>5</option><option>6</option><option>7</option>
<option>8</option><option>9</option></select><select name="
joinkeys1" size="1">
<option>0</option><option>1</option><option>2</option><option>3</option>
<option>4</option><option>5</option><option>6</option><option>7</option>
<option>8</option><option>9</option></select><select name="
joinkeys1" size="1">
<option>0</option><option>1</option><option>2</option><option>3</option>
<option>4</option><option>5</option><option>6</option><option>7</option>
<option>8</option><option>9</option></select><select name="
joinkeys1" size="1">
<option>0</option><option>1</option><option>2</option><option>3</option>
<option>4</option><option>5</option><option>6</option><option>7</option>
<option>8</option><option>9</option></select>
この場合4つのフォームで選択した数値を順番に並べて 1列目と比較します。
joinkeys1 は [keys*]型の先頭にjoinをつけただけだけですので
[up*]や[down*]などすべての型に使えます。

選択 [select* , value*] 補助型

[key][keys*][equal*][up*][down*][join###]と言った型の宣言部分を選択する事が出来ます。この機能は2つのフォームを使って操作します。1つ目は検索型を指定するフォームです。フォームのname属性を[select*]とし、*に型を選択したい列番号を記入します。そしてvalue属性に検索型を記入します。選択はラジオボタンやドロップダウンメニュー等を使って指定します。
そして2つ目のフォームは1つ目で選択した検索型の値となる物です。フォームのname属性を[value*]として、*に[select*]で指定したのと同じ列番号を指定します。


<select name="value3" size="1">
<option> </option>
<option value="1000">\1,000</option>
<option value="2000">\2,000</option>
<option value="3000">\3,000</option>
<option value="4000">\4,000</option>
<option value="5000">\5,000</option>
</select><select name="
select3" size="1">
<option> </option>
<option value="up">以上</option>
<option value="down">以下</option>
<option value="equal">ピッタリ</option>
</select>
値段によって決めるとき

選択 [ IDn* , IDv* ] 補助型

フォームのname属性にID番号を記入し自由に選択できるようにする物です。
select,valueでは完全な宣言部分を選択させる事ができませんでしたが、このIDn,IDvを使うとそれが可能になります。

*の部分は適当なID番号数字を割り当ててください。(この番号は000〜999の間の数字を自由に割り当てられます。)

<input type=text size=40 name="IDv001">
<select name="
IDn001">
<option>and</option>
<option>or</option>
<option>not</option>
</select>
行全体検索型でAND、OR、NOTのどれかを選べさせるとき。

<input type=text size=40 name="IDv002">
<select name="
IDn002">
<option value="keys2">日本語</option>
<option value="keys3">英 語</option>
</select>
日本語(2列目)で検索させるか、英語(3列目)で検索させるかという簡単な選択肢に利用した場合。

パラメータ直接検索 [query] 補助型

FORMのメゾットにGETを指定したとき、検索結果のURLは「database.cgi?検索パラメータ」となっています。
このパラメータを直接フォームで指定できる機能です。

<select name="query">
<option value="down3=500">〜500円</option>
<option value="up3=500&amp;down3=1000">500〜1000円</option>
<option value="up3=1000&amp;down3=1500">1000〜1500円</option>
<option value="up3=1500&amp;down3=2000">1500〜2000円</option>
<option value="up3=2000&amp;down3=5000">2000〜5000円</option>
<option value="up3=5000&amp;down3=10000">5000〜10000円</option>
<option value="up3=10000">10000円〜</option>
</select>

この用に直接検索フォームでGET時に表示されるパラメータを記入できます。
この機能によって、上記のように1つのフォームで複数の検索パラメータを有効にすることが可能です。
(&を記入するときは &amp; とする必要があります。)

またqueryフォームを複数使用する場合は次のように先頭に &amp; をつける必要があります。
value="&amp;up3=5000&amp;down3=10000">

表示件数 [print] 制御型

検索に該当したデータの表示件数を指定できます。

<select name="print" size="1">
<option value="10">10件</option>
<option value="20">20件</option>
<option value="30">30件</option>
<option value="40">40件</option>
<option value="50">50件</option>
</select>

検索条件 [word] 補助型

and,or,not型の検索で全角(2バイト文字)の「WORD」という文字が含まれているデータを、「WORD」という半角文字(1バイト文字)で検索しても該当するように設定することが可能になります。ただしこの機能を使用すると検索スピードが落ちますので「低速」となります。(name属性 word で value属性に 2を指定)

またデフォルトでは検索条件は「半角英数字の小文字と大文字を区別しない」という検索条件ですが、「区別する」という検索条件も可能になります。(name属性 word で value属性に 1を指定)

<select name="word">
<option value="1">大文字小文字を区別</option>
<option selected value="0">区別しない</option>
<option value="2">全角半角も区別しない</option>
</select>
検索条件を選択できるようにした場合


以上のフォームを数種類作っていくことで本格的なデータベースを作成することができます。

検索結果の表示方法もCGI内部で編集できるようになっているので、データに合わせて編集してください。

◆ヒント

◆もし上手く作動しなかかった場合

 ・あなたのサーバーはCGIを使用する事が可能ですか?
 ・パーミッションの設定は合っていますか?
 ・ファイルの名前はあっていますか?
 ・CGIファイルの1行目はサーバーの設定に合っていますか?
 ・どうしても動かない様であればサポート掲示板


Copyright (c) 1998-1999 CGIROOM