• ベストアンサー

チェックボックスの検索システムじゃなく、テキストけ

テキスト検索システムを開発したいです。 チェックボックスの場合 name="kensaku[]"とhtml側でPOSTし、PHP側で$kensaku=$_POST['kensaku']とし、SELECT文で呼び出しますが、テキストタイプの場合、どのようにするのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>テキスト検索システムを開発したいです。 テキストの種類と容量によってやりかたが大きく変わってきます >name="kensaku[]"とhtml側でPOSTし、PHP側で$kensaku=$_POST['kensaku']とし、SELECT文で呼び出しますが <input type="text" name="kensaku"> から流れてくるデータであれば PHP側で$kensaku=$_POST['kensaku']としサニタイズや 必要であればバリデートをして SELECT * FROM HOGE WHERE `フィールド` LIKE '%{$kensaku}%' 的な処理で検索します。 ただし前方後方一致はインデックスが効かないため効率的なSQLの発行が 期待できません。 きちんとやるならキーワードを登録するとか、分かち書きをして 全文検索にするとか、なんらかの高速化が必要です。 また英文は大文字小文字程度ですが日本語のブレはかなり大きいので 対応方法は一冊かけるくらいいろいろ手法があります

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • チェックボックスを使っての検索で

    PHP5とMySQL4.0.24を使用しています。 フィールド内にカンマ区切りでテキストが格納されてます。 +----+----------------------+ | ID | text | +----+----------------------+ |id01| 101,001,201,300 | |id02| 001,201,105 | |id03| 101,401,300,201,003 | | : | : | +----+----------------------+ これをチェックボックスで □001 □003 □101 □105 □201 … でOR検索をしたいのですが。 検索側のHTMLで <input type=checkbox name=chk[] value=001>001         : と書いて 処理側のPHPに $arraival = is_array(@$_POST['chk'])? implode(',',$_POST['chk']):'empty case'; $sql = "select * from shop_data where arraival like '%$arraival%'"; としてもうまく結果が得られません。 どの様に書けばよいのでしょうか?

    • ベストアンサー
    • MySQL
  • チェックボックス&セレクトボックスからの検索

    htmlからチェックボックス&セレクトボックスを使って postgresで検索し、phpで表示するフォームを作っています。 チェックボックスで検索されたデータをセレクトボックスで 絞り込みたいのですがうまくいきません。 or の部分を and に変えたりしたのですが検索結果が 変わってしまいます。 どなたか教えてもらえないでしょうか。 HTML <input type="checkbox" name="chk1" value="1">chk1 <input type="checkbox" name="chk2" value="1">chk2 <select name="add">  <option value="北海道">北海道</option>  <option value="沖縄">沖縄</option> </select> PHP  if ($chk1 != "") {   $sqlSelect .= "abc = '" . $chk1 . "' or ";  }  if ($chk2 != "") {   $sqlSelect .= "abc = '" . $chk2 . "' or ";  }  if ($add != "") {   $sqlSelect .= "add = '" . $add . "' ;  }

    • ベストアンサー
    • PHP
  • テキストボックスの値をファイルに保存する方法

    テキストボックスから入力された文字を取得し、ファイルに保存する方法について、以下のように処理を行った結果、ローカル環境では、動くのですが、レンタルサーバー(スマイルサーバー)上で動きません。レンタルサーバー上でも同様に動くようにするには、どうしたらいいか教えてください。宜しくお願いします。 HTMLテキストBOX <form action="/search.php" method="post"> <INPUTtype="text"size="36"name="kensaku"></FONT><BR> <INPUT type="submit" value="データの検索"> serch.phpの書き出し部分のソース $kensaku=$_POST["kensaku"]; $fd = fopen("/users.txt","a"); $str = " $kensaku"; fputs( $fd, $str ); fclose( $fd ); 動いた環境のPHPバージョンは5.2.4 レンタルサーバーのPHPバージョンは、わかりません!

    • 締切済み
    • PHP
  • phpでチェックボックスでの値の表示について

    HTMLで作成したテキスト、セレクト、チェックボックスなどに、選択されたもの全てをPOST送信で受け取って PHPにてパラメータをチェックしてから 確認画面(HTML)に表示してPHPにてDB登録するというプログラムを作ってます。 HTML側で <input type="checkbox" name="genre[0]" value="1" >国語 <input type="checkbox" name="genre[1]" value="2" >算数 <input type="checkbox" name="genre[2]" value="3" >理科  <input type="checkbox" name="genre[3]" value="4" >社会 として例えば、 <?php $genre = $_POST["genre"]; foreach ($genre as $key => $value){ print($value); } ?> で表示するとチェックした数字が表示されます。 (国語をチェックした場合 1) これを 国語 と表示させるにはどうすればいいんでしょうか? DBに登録する際は数字でいいんですが。

    • ベストアンサー
    • PHP
  • チェックボックスでの送信

    チェックボックスにチェックを入れて送信したときは1を チェックを入れずに送信したときは0をPHP側で受けたいのですが チェックを入れずに送信するとPHP側で$_POST['flg']を取得できないため、エラーになります。 方法はないでしょうか? <form action="test.php" method="post"> フラグ:<input type="checkbox" name="flg" value="1" /> </form> === test.php =========== <?php $flg = $_POST['flg']; print($flg); ?>

    • ベストアンサー
    • PHP
  • チェックボックスのvalueを、テキストボックスに挿入したい

    文末のように、4つのチェックボックスと1つのテキストボックスがあります。 (1) チェックボックスのチェックに伴い各チェックボックスのvalueを そのままテキストボックスの方に転記したいです。 (2) 逆に、チェックが外れたら、該当する valueをクリアしたいです。 (3) 鉄道~航空の一つ以上にチェックが入っている間、テキストボックス自体 をreadonlyにし、手動でいじれなくしたいです。 逆に、全てのチェックが解除されている間は、自由記述可能です。 (4) チェックする前に何らかの値が入っていたら、それらは強制クリアして、 valueの方を優先したいです。 イメージとして、「鉄道」と「航空」にチェックが入ったら、テキストボックスの値は 「新幹線 在来線 ヘリコプタ ジャンボ 」となります。 現在、テキストボックスはReadOnlyです。 そして「鉄道」の方だけチェックが解除されたら、テキストボックスの値は 「ヘリコプタ ジャンボ 」となります。テキストボックスは、まだReadOnlyです。 さらに「航空」のチェックも解除されたら、テキストボックスの値は 空白「」となります。テキストボックスのReadOnlyも解除されます。 <html> <head> </head> <body> <form method="post" action="samp.php" id="query" name="query"> <input type="checkbox" class="norimono" name="norimono[]" value="新幹線 在来線 ">鉄道 <input type="checkbox" class="norimono" name="norimono[]" value="軽 セダン クーペ ">四輪車 <input type="checkbox" class="norimono" name="norimono[]" value="小型 中型 大型 ">二輪車 <input type="checkbox" class="norimono" name="norimono[]" value="ヘリコプタ ジャンボ ">航空 <input value="" size="50" type="text" name="keyword"> </form> </body> </html>

  • チェックボックスを選択するとテキストボックスが表示

    質問失礼します。 チェックボックスが下記のようにある場合ですが、 どれかではなく複数選択で テキストボックスを表示させるにはどうしたらよいでしょうか? <input type="checkbox" name="example" value="" />テレビ ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />新聞 ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />CM ←チェックしたらテキストボックス表示 <input type="checkbox" name="example" value="" />その他 ←チェックしたらテキストボックス表示 色々なJavaScriptを試したのですが、 どうも挙動がおかしく、クリックを続けると表示がされたりできなかったり、 という具合になります。 それぞれテキストボックスを表示させたいチェックボックスに 反映できるJavaScriptをご教示願いますでしょうか? 宜しくお願い致します。

  • チェックボックス、セレクトボックスの検索処理

    --------------------------------------------------------------- (x.html) プルダウンのプログラム nameはa ラジオボックスのプログラム nameはb プルダウンのプログラム nameはc <input type="submit" value="検索" style="width:100;height:25;"> --------------------------------------------------------------- ◆プルダウン1、チェックボックス、プルダウン2があり、 3つともセレクトし、実行すると3つとも当てはまるデータが抽出されますが 抽出されない場合の、「ありません」の文章をいれたいのです。試行錯誤して みても思い通りにいかず、どうやっていったらいいか分かりません。 ◆3つの質問のうち、2つセレクトされただけとか、1つセレクトされた だけでも検索可能(セレクトされたものに当てはまるデータを抽出) にしたいのですが、どういう感じでプログラム組めばいいのでしょうか? * 以下のPHPファイルだと、3つセレクトし、3つ当てはまるデータしか抽出できないです。 (2つセレクトすると、2つだけ当てはまるデータがあるのに抽出できない) -------------------------------------------------------------- (a.php) <?php $x = $_POST["a"]; $w = $_POST["b"]; $z = $_POST["c"]; $Data=file("data.txt"); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); $sey=$line[4]; $sei=$line[5]; $sel=$line[6]; if($x >= $sey){ if($w == $sei){ if($z == $sel){ print "<table><tr><td rowspan='5 width='180'>ID:000$line[0]<br><img src=data/$line[9] border='0'></td> <th width='100'>名前</th><td>$line[1]</td></tr>      ・      ・      ・ </table>"; }}}} ?> ---------------------------------------------------------------- ご教授宜しくお願いします。

    • 締切済み
    • PHP
  • テキストボックスに入力されたらラジオボタンにチェック

    いつもお世話になっております。 タイトル通りなのですが テキストボックスに入力された時に、チェックボックスや ラジオボタンににチェックが付くようなJavaScriptを思考しています。 test.php ---------------------------------------- <form name="form1" method="post" action="test.php"> <input type="checkbox" name="235[]" value="1"> <input name="394" type="text" style="ime-mode: active" onchange="text_check('235')" value="" /> </form> script.js ---------------------------------------- function text_check(nm) {  obj = document.form1;  alert(obj.elements[nm + '[]'].length); // アラートで「undefined」と出てしまう。  for( i=0; i<obj.elements[nm + '[]'].length; i++){   obj.nm[i].checked = true;  } } フォームのラジオボタン、テキストボックスのname属性は 数字じゃない場合は、問題なさそうなのですが 数字の場合だとうまく動作してくれません。 name属性を変更することは考えていません。 ご教示よろしくお願いいたします。

  • 何種類かのチェックボックスグループを検索フォームに追加したい

    PHP 5、MySQL 4.0.14という組み合わせで、検索システムに挑戦中です。 入門書から動作まで確認できましたが、検索フォームにいくつかの チェックボックスを追加したいです。 例えば、好きな果物を任意に選択させ、チェックされた果物をOR条件で、 さらに他の検索条件(住所等)とAND条件で結びたいです。 ここで、(1)HTML側と、(2)<?php ~~?>内に、 具体的にどのように記述したらよいものでしょうか。 例示はしてませんが好きな果物(3つのチェックボックスグループ)だけでなく、 好きな動物(6つの 〃 )や、好きな飲み物(2つの 〃 )など、様々な チェックボックスを検索条件として絞り込めるようにしたいです。 ---検索フォーム-- <FORM method="POST" action="list.php"> 住所<input type="text" name="address"> を含む 好きな果物 <INPUT TYPE="CHECKBOX" NAME="kudamono">りんご <INPUT TYPE="CHECKBOX" NAME="kudamono">みかん <INPUT TYPE="CHECKBOX" NAME="kudamono">なし <input type="submit" name="exec" value="検索"> </FORM> ---検索結果PHP-- require_once("dbini.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $sql = "select * from t_mydata where (address like '%$address%') $sql .= " order by address"; $rst = mysql_query($sql, $con); $body .= "<table>"; for ($recnum = 0; $recnum < $recmax; $recnum++) { $body .= "<tr>"; $body .= "<td>" . $col["ADDRESS"] . "</td>"; $body .= "<td>" . $col["KUDAMONO"] . "</td>"; $body .= "</tr>"; } $body .= "</table>"; # だいぶ省略してます。

    • ベストアンサー
    • PHP