SpiralDataBaseクラスを使ったDB検索

ここではスパイラルの任意のマイエリア内にカスタムマイページを追加して、SpiralDataBaseクラスを活用して従業員一覧を作成してみましょう。

次のような手順になります。

  1. APIトークンの発行
  2. 従業員データを格納するDBを発行
  3. マイエリアの作成・カスタムマイページの追加
  4. カスタムマイページソース編集画面でPHPを記述
  5. 従業員一覧の表示を確認

APIトークンの発行

testというタイトルでAPIトークンを発行します。APIトークン発行方法についてはリファレンスを参照下さい。

従業員データを格納するDBを発行

DBタイトルはimgsampleとして、以下のようなフィールド構成のDBを発行して下さい。

フィールド名 差替えキーワード フィールドタイプ 重複不可
社員番号 empid 数字・記号・アルファベット(32 bytes)
写真 faceimg 画像
名前 name テキストフィールド(64 bytes)
内線 extnum 数字・記号・アルファベット(6 bytes)

DBが発行できたら、DBオペレーションやデータ登録機能を使って従業員データを入れておきましょう。

マイエリアの作成・カスタムマイページの追加

PHPを置くためのカスタムマイページを用意するために、適当な会員DBに紐づくマイエリアを作成してカスタムマイページを作成します。会員DBを別途用意せずに、上記のimgsampleデータベースにパスワードフィールドを追加して流用するという手もあります。

カスタムマイページソース編集画面でPHPを記述

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<!-- SMP_DYNAMIC_PAGE DISPLAY_ERRORS=ON NAME=IMGSAMPLE -->
<head><title>従業員一覧</title></head>
<body>

<?php
$SPIRAL->setApiTokenTitle("test");
// DBを指定
$db = $SPIRAL->getDataBase("imgsample");
// 検索結果に含めるフィールドタイトルを指定
$db->addSelectFields("faceimg", "empid", "name", "extnum");
// DB検索を実行し、結果を変数$resultに入れる
$result = $db->doSelect();
?>
<table border="1">
<th>写真</th><th>社員番号</th><th>名前</th><th>内線</th>
<?php
// 検索結果のデータへは$result["data"]でアクセス可能。
// foreach文を使って、1レコードずつ取り出す。
// 各レコード値はフィールドタイトルをキーとした連想配列としてアクセスする。
foreach($result["data"] as $rec) {
  echo "<tr><td><img src='data:image/png;base64,".$rec["faceimg"]."'></img></td><td>"
  .$rec["empid"]."</td><td>".$rec["name"]."</td><td>".$rec["extnum"]."</td></tr>\n";
}
?>
</table>
</body>
</html>

10行目にて$SPIRALgetDataBase()メソッドを利用してSpiralDataBaseクラスのインスタンスを取得しています。SpiralDataBaseクラスに関してはPHPdocを参照して下さい。

画像型フィールドは標準ではサムネイル画像がbase64でエンコードされた文字列が返ってきます。上記ではimgのsrc属性にdataスキームを使うことで社員の写真をサムネイル表示させています。

従業員一覧の表示を確認

マイエリアにログインし、カスタムマイページにアクセスして表示を確認して下さい。

従業員一覧