CGI-BBS > 基礎 > エディタ > CSVエディタに編集機能を持たせたい2


カレッヂ
カレッヂ


質問者 MHK  投稿日 4/27(金) 21:47:21
以前しあわせのツボ様に教えていただいて快適に使っておりましたがもう一つ教えて頂きたい事ができてしまいました。 以前も書いたように会員の登録用になっていて一部のデータがマッチするとマッチしたものが全部出てきてしまいます。自分で確認したときは検索用のデータを、正確に入力したので気づかなかったのですが中にはかなりいいかげんな人がいるみたいで困っております。 名前だけとか1項目だけの検索でよいのです。完全に一致しないと検索結果が出ないようにできないでしょうか?
よろしくお願いします。
回答者 しあわせのツボ  [削除]  投稿日 4/27(金) 23:29:29
…(TT)

回答の前に。
1.基礎−エディタでなく、データベース−簡易データベースかデータベース−その他が適当かと思います。
2.同じ話題はできるだけ同じスレッドでお願いします。でないと以前の内容がわからなくなってしまいます。

どれか固定の1項目に完全一致、でいいですか?
改造部分
if (!$FORM{'search'} or $BASE[$num] =~ /$FORM{'search'}/) {
のかわりに
if (!$FORM{'search'} or $BASE[$num] eq $item[任意の数字]) {
とします。
"任意の数字"には、CSVの何項目めで検索したいか(最初の項目は0です)を入れて下さい。
質問者 MHK  [削除]  投稿日 4/28(土) 06:09:41
大変失礼しました。今後はそうします。
おきて破りにもかかわらず親切に教えて頂いて大変ありがとう御座います。
早速やってみます。
ありがとう御座いました
質問者 MHK  [削除]  投稿日 4/28(土) 06:48:51
早速やってみたら検索結果になにもHITしなくなっちゃいました。
項目が日本語のところも、数字のところもやってみたんですが駄目です。
何が悪いのか? 何回もすいませんが教えてください。
どうもすいません
回答者 アンジェラ  [削除]  投稿日 4/28(土) 19:39:47
if (!$FORM{'search'} or $BASE[$num] eq $item[任意の数字]) {
ではなく
if (!$FORM{'search'} or $FORM{'search'} eq $item[任意の数字]) {
じゃないかな。
質問者 MHK  [削除]  投稿日 4/28(土) 23:45:59
アンジェラ様ありがとう御座いました。無事動作しました
とっても便利になりました。
今後ともよろしくお願いします。
回答者 こうじ  [削除]  投稿日 9/17(月) 12:55:14
ここまでの、流れでとりあえず個々に検索して編集できるのですが、
DELを押すと登録されている残りのデータが表示されます。
更に、EDITを押して編集後、記録するを押すとやっぱり
残りのデータがすべて表示されます。
何とかなりませんか?
DELの場合は表示が無くなり、記録するの場合は編集後の
画面が出るようにしたいです。
現在は
<FORM METHOD="POST" ACTION="kakikae.cgi">
          <INPUT TYPE="TEXT" NAME="search">
          <INPUT TYPE="submit" VALUE="広告の変更・削除" NAME="submit" onClick="MM_validateForm('search','','R');return document.MM_returnValue">
      </FORM>
HTMLファイル検索用
    
if (!$FORM{'search'} or $FORM{'search'} eq $item[2]) {}
のようにしています
回答者 しあわせのツボ  [削除]  投稿日 9/17(月) 15:34:18
せっかく検索できるようにしているのですから、更新処理の後に再度検索処理をすればいいのでは?
どのような改造をしたのか手元に記録がないので、具体的なコードは出せませんが。
回答者 こうじ  [削除]  投稿日 9/17(月) 22:04:44
会員が各自に自分の所だけを変更する為、他の人の登録した内容が編集できるとまずいのです。
回答者 しあわせのツボ  [削除]  投稿日 9/17(月) 23:49:51
なら始めからそうおっしゃって下さい。
目的がわからないと、お互いに無駄な回り道をすることになります。

もし各自にパスワードを発行していて、それが各レコードの1フィールドとして記録されているのであれば、入力されたパスワードと記録されているそれが一致しなければエラーにする、という処理を組み込めば可能です。
回答者 こうじ  [削除]  投稿日 9/18(火) 00:56:29
フォームにPASSを入力して検索を掛けるまではうまくいってます。
その結果を編集・削除をすると残りのデータが表示されてしまうと
言うことですが・・・・
回答者 しあわせのツボ  [削除]  投稿日 9/18(火) 03:46:04
ですから、編集なり削除なりをsubmitされた時に、削除処理の次に内部的に再びそのキーで検索処理をすれば「いま編集したもの」を検索した結果が表示されるので、結果的に他のものは表示されません。

# 表示されても編集されなければ構わないとも思うのですが…。

15:34が前者、23:39が後者の考え方に基づく回答です。

返信(回答)する


Web裏技