SHOEISHA iD

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

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

FileMaker API for PHPの利用(AD)

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

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

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

詳細ページの表示

 最後に詳細ページを作成します。詳細ページは、検索結果一覧のページから渡されたレコードIDを利用して、レコードのデータを表示します。

図3:商品詳細画面
図3:商品詳細画面
コード3:detail.php
<?php

//文字コードの指定
header("Content-Type: text/html;charset=utf-8");

//APIのインクルード
include_once('FileMaker.php');

//FileMakerに接続
$fm = new FileMaker();
$fm->setProperty('database', 'Catalog');
$fm->setProperty('hostspec', 'http://localhost');
$fm->setProperty('username', 'web');
$fm->setProperty('password', 'pass');

//レコード情報を取得。 ※1
$record = $fm->getRecordById('web_catalog',$_GET['recid']);

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>カタログ詳細</title>
</head>
<body>
<h1>カタログ詳細</h1>
<!--レコードのデータを表示 ※2-->
<table border="1">
    <tr>
        <th>商品ID</th>
        <td><?=$record->getField('ID')?></td>
    </tr>
    <tr>
        <th>商品名</th>
        <td><?=$record->getField('Name')?></td>
    </tr>
    <tr>
        <th>ジャンル</th>
        <td><?=$record->getField('Genre::Genre_Name')?></td>
    </tr>
    <tr>
        <th>メーカー</th>
        <td><?=$record->getField('Maker::Maker_Name')?></td>
    </tr>
    <tr>
        <th>価格</th>
        <td>
            <?php
            $price = $record->getField('Price');
            if(is_numeric($price)){
                echo number_format($price);
            }else{
                echo $price;
            }
            ?>
        </td>
    </tr>
    <tr>
        <th>登録日</th>
        <td>
        <?=date('Y/m/d', strtotime($record->getField('RegistDate')))?>
        </td>
    </tr>
</table>
<!--検索結果の一覧に戻るリンクを表示 ※3-->
<p><a href="result.php?<?=$_GET['search_query']?>">
    検索結果一覧に戻る</a></p>
</body>
</html>
  1. 指定した1件のレコードにアクセスするにはgetRecordByIdメソッドを利用します。引数にアクセスするレイアウト名とレコードIDを渡します。$recordには取得したレコードのレコードオブジェクトが返ってきます。
  2.  
  3. レコードオブジェクトのgetFieldメソッドを利用して値を表示します。ここは「result.php」の項で解説したことと同じです。
  4.  
  5. 「result.php」からGETメソッドにて引き継いだ検索条件「search_query」をリンクにセットします。これにより、検索結果の一覧に戻ることができます。

まとめ

 いかがでしたか? FileMaker API for PHPを使ってレコードの検索を行う場合の処理をざっと解説してみました。検索結果のページ分割表示は、取得範囲の指定と検索条件の引き継ぎの処理がキモです。FileMaker 6以前のCDMLという言語においては、[Fmp-LinkPreview][Fmp-LinkNext]などの便利なタグ(関数)があったため、特に処理を意識しなくてもすみましたが、APIで開発を進める際はこの箇所を自身で処理していく必要があります。

 次の機会には、フォームデータの処理や日付などの書式を指定したフィールドデータの表示などを、カスタム関数にまとめることにより、コーディングがとても楽になるテクニックを紹介したいと思います。

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

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

堀 直樹(ホリ ナオキ)

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング