Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

PHPとFileMaker ProによるWebアプリケーション構築(実装編)

ITエンジニアのためのFileMaker講座 第11回(後編)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/05/07 14:00
目次

簡易CMSの解説

 簡易CMSのPHP処理について説明をします。samplecms.phpファイルのサンプルソースコード各行番号を示しますので、以下の説明と併せて確認してください。

初期設定

 まず、FileMaker API for PHPを読み込み、FileMakerメインクラスのインスタンスを作成します。

 次いでFileMakerのデータベースへ接続を行います(2行目から7行目)。

require_once ('./API/FileMaker.php');

$db = new FileMaker();
$db -> setProperty('database', 'samplecms');
$db -> setProperty('username', 'user');
$db -> setProperty('password', 'password');

記事データの取得・表示

 説明の都合上スクリプト行番号が前後しますが、先に記事データの取得・表示の部分から説明を進めます。

 GET形式で受け取るパラメータ「c」の値が送信された場合、データベースから該当するカテゴリを絞り込んで表示をします(86行目、87行目)。

/* 記事データの取得・表示 */
$findCommand = $db -> newFindCommand("samplecms");

 newFindCommandクラスにsamplecmsレイアウト名を渡します。samplecmsレイアウト上で検索するインスタンスを生成します(88行目、89行目)。

if(!empty($get_category)){ $findCommand -> addFindCriterion('category', '==' . $get_category); }
$result = $findCommand -> execute();

 categoryフィールドにGET形式で受け取るパラメータ「c」の値を設定して検索を実行します(91行目から103行目)。

※HTMLタグは省略します
if(!FileMaker::isError($result)){
$records = $result -> getRecords();
    foreach($records as $record){

        ※表示のHTMLタグ

    }
}

 検索に該当する結果が返された場合のみデータを順番に表示します。

記事の登録処理

 POST形式で受け取るパラメータ「action」に「regist」がある場合、記事登録の処理を行います(19行目から26行目)。

if($post_action == "regist"){
    $addCommand = $db->newAddCommand("samplecms");
    $addCommand -> setField('title', $post_title);
    $addCommand -> setField('category', $post_category);
    $addCommand -> setField('comment', $post_comment);
    $result = $addCommand -> execute();
    header("Location: samplecms.php");  exit;
}

 newAddCommandクラスにsamplecmsレイアウト名を渡します。

 FileMakerでは新規レコードを作成して「title」「category」「comment」をフィールドに登録します。日付フィールド(updateフィールド)は新規レコード作成時に修正日を自動登録するよう設定してあります。

記事の削除

 GET形式で受け取るパラメータ「action」の値が「delete」の場合、記事削除の処理を行います(29行目から39行目)。

if($get_action == "delete"){
    $deleteCommand = $db -> newFindCommand("samplecms");
    $deleteCommand -> addFindCriterion('serial', '==' . $get_serial);
    $result = $deleteCommand->execute();

    if(!Filemaker::isError($result)){
        $records =  $result->getRecords();  $record = $records[0];
        $result2  = $record -> delete();
    }
    header("Location: samplecms.php");  exit;
}

 GET形式で受けた「serial」値で検索を実行して、絞り込んだレコードを削除します。

 以上、FileMakerデータベースのsamplecms.fp7と、上記説明を含めたPHPスクリプト samplecms.php の組み合わせによって、簡単なFileMakerのWeb公開ソリューションができることを説明しました。

まとめ

 本稿ではPHPスクリプトとFileMakerデータベースの連携を中心に解説しました。

 FileMaker Proの編集画面についての解説は省略しましたが、実際に触ってみればエンドユーザーが直感的にデータの管理画面を構築できることをご理解いただけることでしょう。

 応用次第では、様々な業務形態に適用できると思いますので、ぜひ有意義な活用方法を考えてみてください。本稿が、その一助となれば幸いです。



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

著者プロフィール

  • 岡田 匡(オカダ マサシ)

    岐阜県大垣市のソフトピアジャパンと名古屋市に拠点を置く、WebシステムとFileMakerソリューション開発の会社、株式会社ワークスペースの代表取締役。1998年にCGIプログラミングでショッピングカートシステムを初めて開発。2001年にショッピングカートと連携するネット通販の受注管理システムを手掛...

バックナンバー

連載:ITエンジニアのためのFileMaker講座

もっと読む

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