HOME > 簡易データベースを作ってみよう > 

§フリーワード検索を作る

サイト内検索の機能があると非常に有利になります。
フォームから入力されたフリーワードを使って、CSVから任意のデータだけ取り出す検索機能を作ってみましょう。

基本はカテゴリー別ページと同じ

"CSVファイルを配列として読み込み1行ずつ条件と一致するか調べます。
基本的には「カテゴリー別ページ」を作るのとまったく同じ仕組みです。

まずキーワードを入力するフォームを作ります。

<form action=""search.php"" method=""GET"">
<input type=""text"" name=""key"">
<input type=""submit"" name=""submit"" value=""検索"">
</form>

1行テキスト・フィールド「name」に入力されたキーワードを検索用のプログラム「search.php」にGETで送信します。
このフォームを貼り付けた他のページからでも検索できます。
プログラムが同一ディレクトリで無い場合は、action属性で指定するパスに気をつけてください。

次に検索プログラムのソースです。
seach.php
<ul>
<?php
if($_GET[""key""]!=""""){ //解説(1)
$KeyWord=$_GET[""key""];
$KeyWord=htmlspecialchars($KeyWord); //解説(2)

$Data=file(""item.csv"");
for($i=0;$i<sizeof($Data);$i++){
$lines=strip_tags($Data[$i]); //解説(3)
if(mb_eregi($KeyWord‚ $lines)){ //解説(4)
$line=explode(""‚ ""‚ $Data[$i]);
?>
<li><?=$line[3]?> → <a href=""item.php?id=<?=$line[0]?>"">詳細を見る</a></li>
<?php
}
}
}
?>
</ul>

解説(1)
キーワード(key)が空でなければ以下の処理を実行します。

解説(2)
くどいようですが、セキュリティーのため不特定多数の他人が入力したデータを受け取る場合は必ずhtmlspecialcharsで処理しましょう。

解説(3)
HTMLタグを検索対象からはずすためstrip_tagsで処理します。
strip_tagsは文字列からHTMLタグだけを削除します。

解説(4)
文字列検索にはmb_eregi関数やpreg_match関数を使います。
mb_eregi関数は大文字、小文字を区別せずに検索できます。
一致する文字列があればtrueを無ければfalseを返します。

mb_eregi(""検索する文字列""‚ ""検索対象の文字列"")

mb_eregi関数の返り値がtrueのときは行をカンマで分解し、必要なリンクを生成します。
falseのときは次の行の検索が始まります。

ココまでが検索の基本的な仕組みです。"

簡易データベースを作ってみよう

  1. 仕組みとファイル構成
  2. CSVとは
  3. トップページを作る
  4. カテゴリー別ページを作る
  5. アイテム別ページを作る
  6. フリーワード検索を作る
  7. 検索結果がゼロの場合の処理
  8. 絞込み検索(and検索)
  9. 1ページを10件表示に制限する
  10. 登録画面を作る。
  11. CSVへの書き込み
  12. データを編集する。
  13. データを削除する。

メイン・メニュー

  1. はじめに
  2. 入門者向け参考書
  3. PHPの基本
  4. ローテーション・バナーを作ってみよう
  5. 検索結果リンクを自動化しよう
  6. 簡易データベースを作ってみよう
  7. ホームページ制作のためのリンク集

PHPが使えるサーバー

僕が使っているサーバーです。

エックスサーバー
多くのアフィリエイターが支持するレンタルサーバー。
当サイトでも使用しています。

管理人のブログ

音楽サイトでアフィリエイトblog
音楽アフィリエイトとサイト運営の効率化を考えるブログ