【実現したい仕組み】
①index.phpの検索欄に言葉を入力する
②action先のページ(search.php)にて、その言葉が、データベースの特定のレコードに部分一致したとき、その特定のレコードだけでなく、そのレコードから4項目を選び、内容をsearch.phpのテーブルタグ内に表示させる
【現在】
search.phpの「タイトル〜意見」は表示されています。しかし、いくら検索に適正な言葉を入力しても、テーブル内にデータベースの言葉が表示されない状況です。
色々試したのですがダメで、PHPの問題なのか、それともHTMLなのか、はたまたSQL文なのかが分からなくなってしまいました。
どなたか解決策をご存知のかた、教えていただきたいです。
初質問のためおかしな所ありましたらすみません。宜しくお願い致します。
以下、index.php(入力するページ)です
html
1form class="navbar-form navbar-left" method="get" role="search" action="search.php"> 2 <div class="form-group"> 3 <input type="text" class="form-control" placeholder="フリーワード" name="op_search"> 4 </div> 5 <button type="submit" class="btn btn-default">検索</button> 6 </form>
以下、search.php(表示させたいページ)です
PHP
1 2<?php 3 4 5 //データを取得する 6 $keyword = $_GET["op_search"]; 7 8 $con = mysql_connect('localhost', 'root', 'root'); 9 if (!$con) { 10 exit('データベースに接続できませんでした。'); 11 } 12 13 $result = mysql_select_db('xxx', $con); 14 if (!$result) { 15 exit('データベースを選択できませんでした。'); 16 } 17 18 $result = mysql_query('SET NAMES utf8', $con); 19 if (!$result) { 20 exit('文字コードを指定できませんでした。'); 21 } 22 $result = mysql_query("SELECT * FROM sp ORDER BY reg_date_sp DESC WHERE title LIKE '%$keyword%'", $con); 23?> 24 25<table> 26 <tr> 27 <td>タイトル</td> 28 <td>引用元</td> 29 <td>引用文</td> 30 <td>意見</td> 31 </tr> 32 33<?php 34 while ($data = mysql_fetch_array($result)) { 35 echo "<tr>"; 36 echo "<td>" . $data['1']. "</td>"; 37 echo "<td>" . $data['2']."</td>"; 38 echo "<td>" . $data['3']."</td>"; 39 echo "<td>" . $data['4'] ."</td>"; 40 echo "</tr>"; 41 } 42?> 43</table> 44 45<?php 46 $con = mysql_close($con); 47 if (!$con) { 48 exit('データベースとの接続を閉じられませんでした。'); 49 } 50?> 51
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/28 09:30
2016/03/28 09:31
2016/03/28 09:55
2016/03/28 10:01