開発(PHP):データベースから抽出した情報を1つずつ取得

データベースから抽出した情報を1つずつ取得するには、$modx->db->getRowメソッドを使用します。

構文

戻り値 = $modx->db->getRow(データ, 戻り値の形式);
引数名 初期値 説明
第一引数
必須
データ object   $modx->db->selectメソッドで抽出したデータ。
$modx->db->selectメソッドについて:
データベースで特定のテーブルの情報を抽出
第二引数 戻り値の形式 string 'assoc' 戻り値の形式。
'assoc' ... 連想配列
'num' ... 配列
'object' ... stdClassオブジェクト
'both' ... 'assoc'と'num'の両方

戻り値

取得に成功したら第二引数で指定された形式、失敗したらnullを返します。
成功した時に返す情報は$modx->getDocumentメソッドと同じ値です。
$modx->getDocumentメソッドについて:特定のリソースの情報を取得

サンプルコード

$results = $modx->db->select('id,pagetitle', '[+prefix+]site_content');

$row = $modx->db->getRow($results);

if ($row) {
	echo $row['pagetitle'];
}

$modx->db->getRowメソッドを実行すると1行目を取得し、さらに$modx->db->getRowメソッドを実行すると2行目を取得します。
つまり$modx->db->getRowメソッドを実行すると、第一引数で指定した抽出データの行の位置が1つ移動し更新されていきます。
このことを利用しwhile文を使用することで、抽出データを繰り返し処理することができます。

$results = $modx->db->select('id,pagetitle', '[+prefix+]site_content');

while ($row = $modx->db->getRow($results)) {
	...
}

CMS「MODX Evolution」逆引きリファレンス一覧へ戻る