Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
AND検索 OR検索など・・・ - PHPプロ!Q&A掲示板
[go: Go Back, main page]

<< ショッピングカートの構造について 質問一覧 値を送りたいのですが・・・ >>

  • 募集中!! 0P
AND検索 OR検索など・・・

只今、検索システムを開発しているのですが、AND検索、OR検索の仕方が全くわかりません。。。大学の卒業研究なので、出来ないとまずいんです・・・。

ど素人なので、プログラムも間違いだらけかもしれません。アドバイスなどもらえないでしょうか・・・?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>歴史検索</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<?php
extract($_POST);
echo "
<p>検索方法</p>
<form action=\"kensaku33.php\"  method=\"post\" >
<p>検索語句:<input type=\"text\" name=\"jin\" value=\"$jin\" size=\"40\"></p>\n
             <input type=\"radio\" name=\"jin\" value=\"$jin\">人物
       <input type=\"radio\" name=\"jin\" value=\"$jin\">年号  </p>

<p>全件表示:</p>
<p><input type=\"submit\" value=\"検索開始!\">
<input type=\"reset\" value=\"リセット\"></p>
</form>
";
if($jin<>''){
mysql_connect('localhost','root','ravel');
mysql_select_db('rekishi');

$sql= "select * from rekishi where concat(jinbutu, nengou, jidai, dekigoto, shousai) like '%$jin%'";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if($rows == 0){
echo "<p>該当データがありません。</p>";
}
else {
while($row = mysql_fetch_array($result)){
echo "<p>";
echo $row["jinbutu"];
echo "<br /> ";
echo $row["nengou"];
echo "<br />  ";
echo $row["jidai"];
echo "<br /> ";
echo $row["dekigoto"];
echo "<br />  ";
echo $row["shousai"];
echo " ";
echo "</p><hr />";
}
}
}
?>
</body>
</html>


         ↑
自分の中では、上のどこかにプログラムを加えればAND検索などできると思うんですが・・・・全然わからない状態です(>_<)
どなたか宜しくお願いします。。。
QAND検索 OR検索など・・・ rinakusu  [09月12日 00時57分] NEW!
┣Re:AND検索 OR検索など・・・ signal  [09月12日 01時23分] NEW!
┗Re:AND検索 OR検索など・・・ tezcello  [09月12日 09時55分] NEW!

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

Re:AND検索 OR検索など・・・

まずはSQLの勉強をしましょう

研究課題なら尚更こんなところで回答を求めるものではありません
なんのために大学に行っているのでしょうか・・・w

Re:AND検索 OR検索など・・・

大学の卒業研究なら、どのように検索をするのか(=アルゴリズム)が肝心でしょうから、その部分は自分で考えないと。(どのような分野なのかで、異なるかもしれませんが)
プログラム上のテクニックや、関数の使い方なら皆さん教えてくれるでしょうね。


マニュアルには、
extract() をユーザー入力 ($_GET, ...) のような信頼できないデータについて使用しないでください。
とあります。
だからといって、$jin の代わりに $_GET{'jin'} を使うだけでは、不十分です。
例えば、人物名のフィールドに、";phpinfo();" と入っていると、このスクリプトはphpinfo を実行してしまいます。
また、その値をそのままSQL文に挿入しているのもNGでは?
この辺りについては、「サニタイズ言うな」でググって見るとおもしろいです。


最初の echo は、ヒアドキュメントにすると読みやすいかもしれませんね。
(個人的には、\ がいっぱいあるのはとても読み辛い...)


「検索語句」の行、</p> は余分です。改行したいのなら <br> を追加すべきでしょう。
(または、その次の行に、<p> が足らないのか?)


ラジオボタン「人物」,「年号」も検索語句も全て名前、値が同じなので、単純な(AND や OR でない)検索も出来ていないのではないでしょうか?
ショッピングカートの構造について 質問一覧 値を送りたいのですが・・・