Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

FileMaker API for PHPで検索結果を表示する基本テクニック

FileMaker API for PHPの利用 1:レコード検索のテクニック

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/05/29 17:45

カスタムWebにおいて、Webフォームに入力した検索条件をデータベースに送信し、検索結果を画面に表示するテクニックは頻繁に使われる基本操作です。ここでは、FileMaker API for PHPを使って、検索フォームの値の処理やレコードの表示、ページ分割などのテクニックを紹介します。

目次

はじめに

 カスタムWebにおいて、Webフォームに入力した検索条件をデータベースに送信し、検索結果を画面に表示するテクニックは頻繁に使われる基本操作です。ここでは、FileMaker API for PHPを使って、検索フォームの値の処理やレコードの表示、ページ分割などのテクニックを紹介します。

 なお、FileMaker Server 9付属のPHP SiteAssistantは利用せず、いちから開発するものとして進めていきます。また、FileMaker ServerにおけるPHP環境などのセットアップは既に完了しているものとして話を進めます。

データベースの準備

 ここでは、簡単な商品カタログの検索を例にとって紹介します。

データベース名「Catalog.fp7」

テーブル名「Catalog」

  • ID[商品No](数字・自動連番)
  • Name[商品名](テキスト)
  • Genre_ID[ジャンルID](テキスト)
  • Maker_ID[メーカーID](テキスト)
  • Price[価格](数字)
  • RegistDate[登録日](日付)

テーブル名「Genre」

  • Genre_ID[ジャンルID]
  • Genre_Name[ジャンル名]

テーブル名「Maker」

  • Maker_ID[メーカーID]
  • Maker_Name[メーカー名]

リレーション

  • 「Catalog」テーブルのGenre_IDと「Genre」テーブルのGenre_ID
  • 「Catalog」テーブルのMaker_IDと「Maker」テーブルのMaker_ID

値一覧

  • Genre
  • 「Genre」テーブルのGenre_Nameの値
  • Maker
  • 「Maker」テーブルのMaker_Nameの値

レイアウト「web_catalog」[Catalogテーブル]に以下の項目を配置。

  • ID
  • Name
  • Genre_ID
  • Genre_Name[Genreテーブル]
  • 値一覧「Genre」をプルダウン形式で割り当てる。
  • Maker_ID
  • Maker_Name[Makerテーブル]
  • 値一覧「Maker」をプルダウン形式で割り当てる。
  • Price

アクセス権

  • ID「web」、Password「pass」
  • アクセス権セット「閲覧のみアクセス」を割り当てる。
  • アクセス権セット「閲覧のみアクセス」に拡張アクセス権「fmphp」を割り当てる。

画面の流れ

  1. 検索フォーム
  2. 検索結果一覧
  3. 詳細画面

 また、ファイル構成は次のようになります。

/catalog_search/FileMaker/    //API本体
                FileMaker.php //API本体
                search.php    //検索フォーム
                result.php    //検索条件処理および検索結果表示
                detail.php    //詳細データ表示

FileMaker API for PHPの基本操作の概要

 具体的なコーディングに入る前に、まずFileMaker API for PHPの基本的な考え方を解説しておきます。

 FileMaker API for PHPはオブジェクト指向で開発されており、データベースを操作する操作単位がクラス(オブジェクト)としてまとられています。実行したい操作に応じてオブジェクトを作成し、各クラスに用意されている関数(メソッド)を利用しながらデータベースを操作していきます。

 用意されている主なクラスは以下のものです。

  • FileMakerデータベース(データベースへの接続、プロパティの設定)
  • コマンド(レコードの追加/削除/複製/編集/検索)
  • レイアウト(データベースレイアウトからの情報取得)
  • レコード(レコードデータの操作)
  • フィールド(定義されているフィールドの情報取得)
  • 関連セット(関連データの操作)
  • 結果(検索や登録、編集、削除など、コマンド系のクラスを実行した場合のレコードの処理)
  • エラー(上の結果でエラーが発生したかとうかの確認やエラー処理)

 例えば、データベースからレコードを検索する場合の操作の概要は次のようになります。

  1. FileMakerクラスを用いてデータベースに接続。
  2. 接続するデータベースを指定し、アカウントやパスワードをセットする。
  3. コマンドクラスを用いて検索条件を指定し、検索を実行。
  4. 結果クラスを用いて、対象レコードを取得。
  5. レコードクラスを用いて、各レコードのデータを取得。
  6. 3でエラーが発生した場合(検索結果がないなど)、エラークラスを用いてエラー処理を実行。

 各クラス(オブジェクト)の役割と、それぞれに用意されている関数(メソッド)を理解すれば、今どんな処理がしたいのかによって、どのクラス/関数を利用をすればいいのか理解できるようになると思います。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 堀 直樹(ホリ ナオキ)

    大学卒業後入社の企業にて、趣味のFileMaker使いからなりゆきで社内のシステム担当となり社内システムの開発に孤軍奮闘する。その後ソフトハウスに転職してFileMakerによるシステム開発に従事し、現在は株式会社キクミミにて数々の企業のシステムを開発する。PHPによるカスタムWebでのシステム構築...

バックナンバー

連載:FileMaker API for PHPの利用
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5