質問: 【実現したい仕組み】 1index.phpの検索欄に言葉を入力する 2action先のページ(search.php)にて、その言葉が、データベースの特定のレコードに部分一致したとき、その特定のレコードだけでなく、そのレコードから4項目を選び、内容をsearch.phpのテーブルタグ内に表示させる 【現在】 search.phpの「タイトル〜意見」は表示されています。しかし、いくら検索に適正な言葉を入力しても、テーブル内にデータベースの言葉が表示されない状況です。 色々試したのですがダメで、PHPの問題なのか、それともHTMLなのか、はたまたSQL文なのかが分からなくなってしまいました。 どなたか解決策をご存知のかた、教えていただきたいです。 初質問のためおかしな所ありましたらすみません。宜しくお願い致します。 以下、index.php(入力するページ)です ``` form class="navbar-form navbar-left" method="get" role="search" action="search.php"> 検索 ``` 以下、search.php(表示させたいページ)です ``` タイトル 引用元 引用文 意見 "; echo "" . $data['1']. ""; echo "" . $data['2'].""; echo "" . $data['3'].""; echo "" . $data['4'] .""; echo ""; } ?> ```
回答: ``` $result = mysql_query("SELECT * FROM sp ORDER BY reg_date_sp DESC WHERE title LIKE %'$keyword%'", $con); ↓↓↓ $result = mysql_query("SELECT * FROM sp WHERE title LIKE '%$keyword%' ORDER BY reg_date_sp DESC", $con); ``` では? あと、`mysql`系のAPIは非推奨です。`mysqli`か`PDO`を使いましょう。 また、入力された文字を直接SQLに入れてはいけません。SQLインジェクションされます。 プリペアドステートメントを使いましょう。