SHOEISHA iD

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

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

FileMaker API for PHPの利用(AD)

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

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

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

検索フォームの作成

 それでは、まず検索フォームを作りましょう。

 ジャンルやメーカーはプルダウンで選択して検索できるようにしたいので、検索フォーム表示の際に、データベースにアクセスしてジャンルテーブルとメーカーテーブルの値を取得しておくようにします。

コード1:search.php
<?php

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

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

//FileMakerクラスを用いてFMに接続する。 ※3
$fm = new FileMaker();
$fm->setProperty('database', 'Catalog');
$fm->setProperty('hostspec', 'http://localhost');
$fm->setProperty('username', 'web');
$fm->setProperty('password', 'pass');

//レイアウト情報を取得し、ジャンルとメーカーの値一覧のデータを取得。※4
$layout=$fm->getLayout('web_catalog');
$genres = $layout->getValueList('Genre');
$makers = $layout->getValueList('Maker');

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>カタログ検索</title>
</head>
<body>
<h1>カタログ検索</h1>
<form action="result.php" method="get"> ※5
<table>
    <tr>
        <th>商品ID</th>
        <td><input type="text" name="ID" value=""></td>
    </tr>
    <tr>
        <th>商品名</th>
        <td><input type="text" name="Name" value=""></td>
    </tr>
    <!--FMから取得した値一覧の値を展開 ※6-->
    <tr>
        <th>ジャンル</th>
        <td><select name="Genre_Name">
            <option value=""></option>
            <?php
            foreach($genres as $genre){
                echo '<option value="'.$genre.'">'.$genre.'</option>';
            }
            ?>
            </select>
        </td>
    </tr>
    <tr>
        <th>メーカー</th>
        <td><select name="Maker_Name">
            <option value=""></option>
            <?php
            foreach($makers as $maker){
                echo '<option value="'.$maker.'">'.$maker.'</option>';
            }
            ?>
            </select>
        </td>
    </tr>
    <tr>
        <th>登録日</th>
        <td><input type="text" name="RegistDate" value=""></td>
    </tr>
</table>
<p><input type="submit" name="_search" value="検索実行"></p>
</form>
</body>
</html>
  1. 作成したPHPファイルが文字コードUTF-8で記述されていることを明示するために、PHPのheader関数を使って文字コードを出力するようにしています。
  2.  
  3. FileMaker API for PHPを読み込みます。
  4.  
  5. 変数$fmFileMakerクラスのインスタンスが作成されます。setPropertyメソッドを使ってデータベース名やアカウント情報などを設定し、データベースに接続します。
  6.  
  7. FileMakerクラスのgetLayoutメソッドを利用して、接続したデータベースのレイアウト情報を取得します。このレイアウト情報からgetValueListメソッドを利用してフィールドに設定している値一覧などの情報を取得できます。ここでは、$genresにFMで設定した値一覧「Genre」の値の配列が入り、$makersに「Maker」の値の配列が入ります。
  8.  
  9. フォームの送信方法をGETにします。検索結果をページ分割して表示する際に、検索条件の引き継ぎの処理の記述がシンプルになります。
  10.  
  11. 取得した値一覧のデータ、$genres$makersforeach関数を使ってプルダウンリストとして展開します。

 作成したファイルにアクセスしてみます。

http://【serverIP】/catalog_search/search.php

 実行した結果のイメージは次のようになります。

図1:検索フォーム
図1:検索フォーム

次のページ
検索結果の表示

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング