今年はphpをマスターすべく、
苦手な部分であったデータベースを練習してみました。
自分のHPの質問ページはwordpressで作成しているので、
すでに作成されているDBに接続して、検索、表示するまでを
やってみました。
以下、覚書。
if(!$conn = mysql_connect(“ホスト”, “アカウント”, “パスワード”)) {
die(“mysql接続エラー”);
}
mysql_select_db(“データベース名”, $conn);
//まずはDBに接続
$condition = “”;
if(isset($_POST[“title”]) && ($_POST[“title”] != “”)) {
$title = mysql_escape_string($_POST[“title”]);
$title = str_replace(“%”, “¥%”, $title);
$condition = “WHERE title LIKE ¥”%”.$title.”%¥” OR content LIKE ¥”%”.$title.”%¥””;
}
//フォームから検索ワードを受け取る
適正処理をし、検索する条件を作成
検索範囲は、title,contentフィールドを対象とする
$sql = “SELECT * FROM posts “.$condition;
$res = mysql_query($sql, $conn);
//クエリを送信する
while($row = mysql_fetch_array($res)) {
echo $row[“title”].$row[“content”];
}
mysql_free_result($res);
//検索結果を表示
解放して終了
以上。
ちょっと、苦戦しましたが、
どうにか検索できました。
が、たまにデータベースのテーブル内に、
明らかに表示されている文言なのに、
検索しても何にも引っかからない場合が
何回かありました。
なぜだろう。。。
MYSQLの問題?記述の問題?
先は長い。。。
Leave a Reply