CGI-BBS > データベース > 簡易データベース > 簡易データベースの改造をしたら検索が出ない


カレッヂ
カレッヂ


質問者 なおこ  投稿日 2005/1/7(金) 15:41:03
2005年初の書き込みなので、回答頂けるかちょっと不安です。
よろしくお願いします!

登録の項目を「名前」「星座」「血液型」に絞り登録をし、
「星座」「血液型」の項目選択で両方が一致した人の
「名前」を検索結果に出そうと思っています。

登録は、csvへデータを送るところまで出来ましたが、
検索の部分で

search.cgiを
($d,$DATE,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);
とし、それぞれ

	$data = $data2 = $BASE[$num];
	&jcode'convert(*data,'euc');
	($d,$DATE,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);

	# 血液型

	if ($FORM{'BLOOD'} ne 'all') {

		if ($BLOOD eq $FORM{'BLOOD'}) { ; } else { next; }
	}

	# 誕生日

	if ($FORM{'BIRTH'} ne 'all') {

		if ($BIRTH eq $FORM{'BIRTH'}) { ; } else { next; }
	}

にしたのですが、「●ご指定の条件では見当たりませんでした.」とでます。
else を試しに、allにしたら、登録項目全てが出てきましたので
この辺りの問題なのでは?と思っております。

初心者なのですが、みなさま是非!是非!お教えいただければと
思います。よろしくお願いします!!

【習熟度】(未選択)

回答者 hiro  [削除]  投稿日 2005/1/10(月) 20:07:26
私も初心者で、ここでつまづきました。

($d,$DATE,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);
を
($d,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);

と、$DATAを消したらうまくいきましたよ。
同じ初心者同士頑張りましょう(^^)
質問者 なおこ  [削除]  投稿日 2005/1/13(木) 19:24:36
hiro 様

ご回答頂きありがとうございます。
ご助言どおり行ってみたのですが、結果は同じでした。。。

どこが間違っているのでしょうか?

改造箇所
index.html・・・フォームのカスタマイズ
regist.html・・・フォームのカスタマイズ

regist.cgi・・・#入力チェック部分、{'EMAIL'}の削除(未使用のため)
search.cgi・・・
     ($d,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);
     とし、それぞれ

	$data = $data2 = $BASE[$num];
	&jcode'convert(*data,'euc');
     ($d,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);


	# 血液型

	if ($FORM{'BLOOD'} ne 'all') {

		if ($BLOOD eq $FORM{'BLOOD'}) { ; } else { next; }
	}

	# 誕生日

	if ($FORM{'BIRTH'} ne 'all') {

		if ($BIRTH eq $FORM{'BIRTH'}) { ; } else { next; }
	}
と改造。と、最小限のカスタマイズをしたつもりですが、どうしても
●ご指定の条件では見当たりませんでした.
となります。

データ自体はcsvedit.cgiで確認しても、登録はされているようです。

その他、考えられる原因、お分かりになりますでしょうか?
何卒!何卒!よろしくお願いいたします。


回答者 hiro  [削除]  投稿日 2005/1/13(木) 19:56:01
どうもこんにちは。
私も迷ったのですが、これではいかがでしょうか?
これでダメなら、もう一度$DATAを入れてやってみてください。
きっと分かる人ならすぐに分かるんでしょうけど、
なにせ私も初心者なもので、あまりうまく説明できず申し訳ないです。


$data = $data2 = $BASE[$num];
	&jcode'convert(*data,'euc');
	($d,$NAME,$BLOOD,$BIRTH) = split(/\,/,$data);

	# 血液型
	
	if ($FORM{'BLOOD'} ne 'all') {

		if ($BLOOD =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'BLOOD'}/i) { ; } else { next; }

	}

         # 誕生日

	if ($FORM{'BIRTH'} ne 'all') {

		if ($BIRTH =~ /^([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})*$FORM{'BIRTH'}/i) { ; } else { next; }

	}
質問者 なおこ  [削除]  投稿日 2005/1/13(木) 20:07:54
hiro様

たびたび、ありがとうございます。
やはり。。。治りませんでした(>o<")

パミッションの設定も再度確認したんですが、問題ないようなので
どこが問題なのか、皆目分からず状態です。。。

たびたび、ありがとうございました。
もう少し、頑張ってみます!
回答者 ACHA  [削除]  投稿日 2005/1/28(金) 00:56:14
regist.cgiの68行目あたりは、

#書きこむ
if (!open(OUT,">>$file")) { &error('システムエラー','ファイルを書きこみオープンできません.'); }
print OUT "?,$FORM{'NAME'},$FORM{'BLOOD'},$FORM{'BIRTH'}?n";
close(OUT);

となっていますか?
質問者 なおこ  [削除]  投稿日 2005/1/28(金) 13:30:40
ちょっと前の質問にも関わらず、
ご返信いただきまして、ありがとうございました。

再度、こちらで、やるべくnameを変えないようにやったら
動くようになりました。

やはり、素人はあれこれイジってはダメですね。
ありがとうございました!!

このページは終了したので返信(回答)は書きこめません
 


Web裏技