SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

FileMaker API for PHPの利用(AD)

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

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

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

カスタム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でエラーが発生した場合(検索結果がないなど)、エラークラスを用いてエラー処理を実行。

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

次のページ
検索フォームの作成

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
FileMaker API for PHPの利用連載記事一覧
この記事の著者

堀 直樹(ホリ ナオキ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2500 2008/09/05 11:20

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング