Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

FileMakerとPHPによるWebアンケートフォームの作成(前編)

第9回 PHPによるFileMakerのカスタムWeb公開 - (1)

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

この連載では、システム開発において採用が増えつつある「FileMaker」というデータベースソフトウェアについて、最前線で活躍するエンジニアがリレー形式でその魅力を紹介します。第9回は3部構成で、アンケートフォームを作成しながら、FileMaker Server 9より実装された「PHPによるカスタムWeb公開機能」を解説します。前編。

目次

はじめに

 今回より3回に渡って、FileMaker Server 9より実装された「PHPによるカスタムWeb公開機能」(FileMaker API for PHP)を紹介します。アンケートフォームを作成しながらFileMaker API for PHPの基本的な使い方を解説していきたいと思います。

 質問や回答の設定、およびアンケートの集計をFileMakerで行い、設定した質問・回答をFileMaker API for PHPを使ってWebアンケートフォームとして表示するというアプリケーションを作ります。

 前編として今回は、FileMaker API for PHPの簡単な紹介と作成するアンケートフォームの概要、データベースの作成、FileMaker Serverへのセット、PHP環境の構築までを解説します。

FileMaker API for PHPについて

 PHPは、現在Webアプリケーション開発にとても人気があり実績も豊富な言語です。ライブラリやテンプレートなども豊富に出回っていますので、オープンソースで開発された便利なツールを自身のWebアプリケーションに組み込んでいくこともできます。言語構造が簡単なので、比較的容易に習得することができるのも魅力です。

 FileMaker API for PHPは、FileMaker Server 9より実装された、PHPを使ってFileMakerのカスタムWebを開発するためのツールです。Web上から、データの検索や登録、編集、削除、関連データの操作、FileMaker上で定義されたスクリプトの実行などさまざまな処理を実行させることができます。

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

 最初は難しく感じるかもしれませんが、考え方に慣れれば後は自然に操作できるようになります。

 FileMaker Server 9には、このPHPを利用したカスタムWeb公開をサポートする、PHP Site Assistantというアプリケーションが付属しています。PHP Site Assistant機能を使用すれば、ウィザード形式でデータの登録や検索、編集など、よく利用するPHPベースのWebページを作成できます。

 今回の連載では、このPHP Site Assistant機能は使わずにFileMaker API for PHPを直接利用してWebページをコーディングしていきます。

アンケートフォームの作成

 それでは、今回作成するWebアンケートフォームについて概要をまとめておきます。まず大枠は次のとおりです。

  • FileMaker上で、質問や回答の設定、アンケートの集計など行う。
  • FileMaker API for PHPを使って、Webアンケートフォームを表示、FileMakerへの登録処理を行う。

 後は、次のような特徴を備えるようにします。

  • 複数のテーマのアンケートが作成でき、期間ごとに実施するアンケートを指定できる(同時に実行できるのは一つのテーマだけ)。
  • 質問や回答を自由に設定でき、質問の数も自由に増減できる。
  • アンケートフォームの質問の回答は、それぞれの質問ごとに回答の選択肢を改行区切りでフィールドに登録する。登録した回答はWebフォーム上ではラジオボタンにして表示する。
  • アンケートの回答の集計はFileMaker上で行う。

FileMakerデータベースの定義

 それでは早速アンケートフォームを作成していきます。まずはFileMakerデータベースを定義していきます。

 作成するテーブルは以下の4つです。

  • アンケート見出し
  • アンケートフォームのテーマや対象期間などを管理します。
  • アンケート質問
  • アンケートフォームの質問や回答を管理します。
  • 回答見出し
  • アンケートフォームからの回答結果の見出しデータを管理します。
  • 回答明細
  • アンケートフォームからの質問の回答結果データを管理します。
図1 データベースの管理:テーブル一覧
図1 データベースの管理:テーブル一覧

 アンケートフォームをテーマなどの見出しと質問・回答部分の明細に分けて親子関係にします。また、それを受ける登録フォームからのデータも、見出しと回答を分ける親子関係にします。これにより、質問の数をアンケートのテーマごとに自由に設定でき、回答の集計もやりやすくなります。

 各テーブルのフィールド定義は次のようにします。

図2 「アンケート見出し」テーブルのフィールド定義
図2 「アンケート見出し」テーブルのフィールド定義
図3 「アンケート質問」テーブルのフィールド定義
図3 「アンケート質問」テーブルのフィールド定義
図4 「回答見出し」テーブルのフィールド定義
図4 「回答見出し」テーブルのフィールド定義
図5 「回答明細」テーブルのフィールド定義
図5 「回答明細」テーブルのフィールド定義

 上で定義したテーブルを次のようにリレーションを設定します。

図6 リレーションシップ図
図6 リレーションシップ図

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

著者プロフィール

  • 堀 直樹(ホリ ナオキ)

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

バックナンバー

連載:FileMaker Pro 実践チュートリアル

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5