sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- 連想配列としてレコードを1件取得

説明

array sesam_fetch_array ( string result_id, int [whence] , int [offset] )

取得したレコードに対応する配列またはレコードがもうない場合には FALSE を返します。

sesam_fetch_array() は、 sesam_fetch_row() の連想配列版です。データを結 果配列の数値添字に保存する代わりに、データをフィールド名をキーと して連想配列に保存します。

result_id は、 sesam_query() (select 型クエリのみ!)により返さ れた有効な結果IDです。

オプションの whence および offset パラメータの有効な値の詳細については、 関数 sesam_fetch_row() を参照下さい。

sesam_fetch_array() は、 指定した結果IDが指す結果から1件分のレコードを取得します。レコード は、連想配列として返されます。各結果カラムは、そのカラム(または フィールド)名に等しい連想配列の要素に保存されます。カラム名は、小 文字に変換されます。

フィールド名がないカラム(例えば、数値演算の結果)および空のフィー ルドは、配列に保存されません。また、2つ以上の結果がカラム名に同じ カラム名がある場合、最後のカラムが優先されます。この場合、 sesam_fetch_row() をコールするかそのカラムへの エイリアスを作成して下さい。

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2


特別な処理により"複数フィールド"カラム(もしくは同じカラム名を有す るカラム)を取得することが可能になります。"複数フィールド"の各カラ ムに関して、添字名は、文字列"(n)"を付加することにより構築されます。 ただし、n は複数フィールドのカラムの副添字であり、1から宣言済みの 反復数までの範囲となります。クエリ構文で使用される表記に一致させ るために添字はゼロを基準にしていません。 次のように宣言されているあるカラムの場合、

CREATE TABLE ... ( ... MULTI(3) INT )
個々の"複数フィールド"カラムに関して連想添字は、それぞれ "multi(1)" , "multi(2)" , "multi(3)" になります。

sesam_fetch_array() を続けてコールした場合、結 果集合の次の(スクロール属性に応じて前またはn番目の前/後)レコードま たはレコードがもうない場合に FALSE を返します。

例 1SESAM 取得配列

 ?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE
LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    ... error ...
}
// print the table:
print " TABLE BORDER \n";
while (($row = sesam_fetch_array ($result))    count ($row)   0) {
    print "  TR \n";
    print "  TD ".htmlspecialchars ($row["firstname"])." /TD \n";
    print "  TD ".htmlspecialchars ($row["lastname"])." /TD \n";
    print "  TD ".htmlspecialchars ($row["phoneno"])." /TD \n";
    print "  /TR \n";
}
print " /TABLE \n";
sesam_free_result ($result);
? 

添字配列を返す sesam_fetch_row() も参照下さい。