1<?php234//データを取得する5$keyword=$_GET["op_search"];67$con=mysql_connect('localhost','root','root');8if(!$con){9exit('データベースに接続できませんでした。');10}1112$result=mysql_select_db('xxx',$con);13if(!$result){14exit('データベースを選択できませんでした。');15}1617$result=mysql_query('SET NAMES utf8',$con);18if(!$result){19exit('文字コードを指定できませんでした。');20}21$result=mysql_query("SELECT * FROM sp WHERE title LIKE '%$keyword%' ORDER BY reg_date_sp DESC",$con);22?>2324<table>25<tr>26<td>タイトル</td>27<td>引用元</td>28<td>意見</td>29</tr>3031<?php32while($data=mysql_fetch_array($result)){33echo"<tr>";34echo"<td>".$data['1']."</td>";35echo"<td>".$data['2']."</td>";36echo"<td>".$data['4']."</td>";37echo"</tr>";38}394041?>42</table>4344<?php45$con=mysql_close($con);46if(!$con){47exit('データベースとの接続を閉じられませんでした。');48}49?>50
1<?2//自作関数の読込 3include("../../include/function.inc");45//変数初期化6$result="";7$keyword="";89if(!empty($_GET["op_search"])){10//GETパラメーターを消毒して代入11$keyword=sanitize($_GET["op_search"]);12}1314//データベースへの接続設定項目15//本来はconfig.incなど別の設定ファイルに記述してインクルードします。16$db_name="testdb";17$db_user="testdb01";18$db_pword="hogehoge123";19$table="post_data";20$limit=10;2122try{23$option=array(24PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,25PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_NUM,//添字を0 から始まるカラム番号にする26PDO::MYSQL_ATTR_USE_BUFFERED_QUERY=>true,27PDO::ATTR_EMULATE_PREPARES=>false,28PDO::ATTR_STRINGIFY_FETCHES=>false29);30//データベースに接続31$con="mysql:host=localhost;dbname=$db_name;charset=utf8";32$pdo=newPDO($con,$db_user,$db_pword,$option);33$pdo->query('SET NAMES utf8');34}catch(PDOException$e){35$result=$e->getMessage();36}37if(empty($result)){38try{39if(!empty($keyword)){40//キーワードが渡された場合41$sqls="SELECT * FROM $table where title like :srh limit $limit";42$sql=$pdo->prepare($sqls);43//Like検索文字列を作成する44$srh_string="%".$keyword."%";45//検索文字列をプレースホルダにバインド46$sql->bindValue(":srh",$srh_string,PDO::PARAM_STR);47}else{48//キーワードが空の場合49$sqls="SELECT * FROM $table limit $limit";50$sql=$pdo->prepare($sqls);51}52//キーワード検索クエリを実行53$ret=$sql->execute();54if(!$ret){55$info=$sql->errorInfo();56$result=$info[2];57}58}catch(PDOException$e){59$result=$e->getMessage();60}61if(empty($result)){62//結果テーブル文字列の作成63$result="件数:".$sql->rowCount()."件<br>\n";64$result.="<table><tr><td>タイトル</td><td>引用元</td><td>引用文</td><td>意見</td></tr>";65//行があるだけループする66while($row=$sql->fetch()){67$result.="<tr>\n";68$result.="<td>".$row[0]."</td>\n";69// id列をリンク先のURLにパラメーターとして渡す70$result.="<td><a href='result.html?id=".$row[0]."'>".htmlspecialchars($row[1],ENT_QUOTES)."</a></td>\n";71$result.="<td>".htmlspecialchars($row[2],ENT_QUOTES)."</td>\n";72$result.="<td>".htmlspecialchars($row[3],ENT_QUOTES)."</td>\n";73$result.="<td>".htmlspecialchars($row[4],ENT_QUOTES)."</td>\n";74$result.="</tr>";75}76$result.="</table>\n";77}78}79$pdo=null;8081//結果を表示する82print$result;83?>84<formclass="navbar-form navbar-left"method="get"role="search"action="">85<divclass="form-group">86<inputtype="text"class="form-control"placeholder="フリーワード"name="op_search">87</div>88<buttontype="submit"class="btn btn-default">検索</button>89</form>90
動作確認環境
WADAX WX共用サーバー PHP Version 5.3.3 MySQL 5.1.73
Windows 8.1 Pro 64bit Firefox45.0.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/29 15:45
2016/04/07 02:53