• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索ワードを(1)クリアされないようにしたい、(2) スペース区切りしたい)

PHPとMySQLで簡単な検索システムを作成する方法とセッションの管理方法について

このQ&Aのポイント
  • PHPとMySQLで簡単な検索システムを作成する初心者の質問に対して、セッションを使用してキーワードを保持する方法や、AND条件での絞り込みを実現する方法について解説します。
  • 001.htmから検索し、002.php結果がリストアップされると、002.phpにある検索フォームに入力したキーワードはが当然クリアされています。また、002.phpから再検索しても、同じくクリアされてしまいます。テキストフィールドに入力した内容を残す(引き継ぐ)方法についての解決策を説明します。
  • 現在の検索フォームの仕組みでは、1つのキーワードに対して1つのテキストフィールドを使用しています。しかし、Web検索のように、テキストをスペースで区切ってAND条件でつなぐ方法が可能かどうかについても考察します。

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

  • ベストアンサー
  • const
  • ベストアンサー率66% (12/18)
回答No.1

順を追って考えれば敷居は高くないので必要なければ具体的なソースは読み飛ばしてください: (1) 手順:該当inputタグのvalue属性に入力内容を指定する   (a) <input type="text" name="1" value="<?php echo htmlspecialchars($_POST['1']); ?>">   (b) <?php printf('<input type="text" name="1" value="%s">', htmlspecialchars($_POST['1'])); ?> (2) 手順:入力を分割して1つづつLIKE句を作成し、AND演算子でつなぐ // エンコーディングがわからないので参考程度に $sql = 'select * from t_url'; $title = trim($title); // サニタイズ・エスケープと共に行っているとは思いますが if ($title != '') { $titles = array(); foreach (preg_split('/(\s| )+/', $title) as $word) { array_push($titles, "fullpass like '%$word%'"); } $sql .= ' where (' . implode(' and ', $titles) . ')'; }

litton101
質問者

お礼

constさん、ご教示ありがとうございます。 すばらしいです。 完璧です! これらは絞込の可否に関わってきますので、 非常に大きいです。 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう