CGI-BBS > 基礎 > エディタ > CSVエディタに検索機能を持たせたい


カレッヂ
カレッヂ


質問者 MHK  投稿日 4/23(月) 13:56:08
CSVデータが多数で目的のデータを出すのが非常に困難になってきました。
検索した結果だけをCSVエディタで編集できませんか?
初心者なのでこんな質問の仕方でよろしいでしょうか、お力をお貸しください。
回答者 しあわせのツボ  [削除]  投稿日 4/23(月) 16:17:11
せっかくCSVなのですから、手元に落として表計算ソフトで編集して再アップ。
それが一番現実的だと思います。
質問者 MHK  [削除]  投稿日 4/23(月) 16:51:26
どうも言葉が足りなかったようですね
データベースが会員の登録用(住所・名前・電話番号・email)になっていて、引っ越したりしてデータが変わった人が自分のデータを編集できるようにしたいのです。
全て出ちゃうと他人のをうっかり書き換えたりして混乱してしまうので、最初に自分のデータを検索して次に変更を加えるという作業をしたいのです。
何とかなりませんか?
回答者 しあわせのツボ  [削除]  投稿日 4/23(月) 18:34:20
猛烈に雑な方法ですが、とりあえずこんなのでどうでしょう。
まず、csvedit.cgi line 102
if ($EDIT) { &edit($edit_num); }
の直前に
@BASE = grep(/$FORM{'search'}/,@BASE) if $FORM{'search'};
という行を足しておきます。
次にHTMLで適当なページを作成し
<form method="POST" action="CSVエディタのアドレス">
<input type="text" name="search">
<input type="submit" value="検索">
</form>
を配置します。
利用者にはCSVエディタ本体でなくHTMLドキュメントのアドレスを告知して下さい。
質問者 MHK  [削除]  投稿日 4/23(月) 21:24:23
早速の回答ありがとう御座います。
ご指示のとおりにしましたらhtmlからCSVエディターまでの表示はいいのですが
EDITボタンを押すとCSVエディターの画面に出ている表示とは違うデータの編集画面に
なってしまい目的のデータの編集ができません。なにぶん初心者なので原因がわかりません
お手数ですが再度お教え願えませんでしょうか
よろしくお願いします。
回答者 しあわせのツボ  [削除]  投稿日 4/23(月) 23:11:05
あら…。やっぱり手を抜いてはいけないみたいです(^^;
考え直します。
回答者 しあわせのツボ  [削除]  投稿日 4/23(月) 23:32:47
えと、上記
> @BASE = grep(/$FORM{'search'}/,@BASE) if $FORM{'search'};
は元に戻して下さい。で、line 168
print <<"EOF";
の直前に
if (!$FORM{'search'} or $BASE[$num] =~ /$FORM{'search'}/) {
を、line 180
EOF
の直後に
}
を書き足して下さい。

仕組みをいじらない「やっつけ」の改造ですので、1ページの表示行数をできるだけ大きくし、検索することを前提とした利用にして下さい。
でないと、データが何も表示されないページを何枚も進むことになってしまいますので…
質問者 MHK  [削除]  投稿日 4/24(火) 06:03:07
何度もご親切に教えていただいてありがとう御座います。
やっつけ仕事とおっしゃいましたが、これで十分です。望む形になりました。
大変ありがとう御座います。なにぶん初心者なので他にも質問があります。
別スレッドを立てさせていただきますので、なにとぞよろしくお願いします。
回答者 okamura  [削除]  投稿日 10/12(土) 11:40:37
上の検索のスクリプト非常に参考になって使わせていただいています。
でも私の使ってるCSVエディッタはデータが700以上あり、
and,or検索が使えるとかなり能率が上がるのですが、
私perl,cgiのほうはさっぱりでスクリプトはかけません。
どなたかお力になれる方ございましたら、
and,or検索使って絞り込めるようなスクリプト書ける方おられるでしょうか??

返信(回答)する


Web裏技