1

uid特定の役割を持つすべてのユーザーを一覧表示するSQLクエリがあります。

SELECT u.uid 
FROM {users} as u, {users_roles} as ur 
WHERE u.uid = ur.uid AND ur.rid = 10 ORDER BY u.uid DESC

リスト用のオブジェクトとして、それらすべてを配列にロードする必要があります。

以前に質問したところ、ビューがないとやりたいことが簡単になるという答えしかありませんでした。代わりにテンプレートファイルを使用します。
したがって、この質問。

私はこれを行う方法を知っていますが、どうやら私の方法は-2の価値があります

これが私がやりたい方法です:

$research['sql']   = "SELECT u.uid FROM {users} as u, {users_roles} as ur WHERE u.uid = ur.uid AND ur.rid = 10 ORDER BY u.uid DESC";
$research['sql_result'] = db_query($alumni['sql']);

// Load user objects and store in array
while($user_array = db_fetch_array($research['sql_result'])) {
  // Create user objets based on uid
  $user_obj = user_load($user_array['uid']);

  // Load profile
  profile_load_profile($user_obj);
  $research['users'][$user_obj->uid] = $user_obj;
}

どうしたらいいか教えてください。

4

1 に答える 1

1

あなたの基本的なアプローチは、への呼び出しprofile_load_profile()が冗長であることを除いて、私にはうまく見えます:

user_load()関数はhook_user操作'load'で呼び出し、プロファイルモジュールはロード操作自体を実装hook_userして呼び出します。したがって、明示的に呼び出すときまでに、関数profile_load_profile()はすでに暗黙的に呼び出されており、ドロップするだけで済みます。

于 2010-03-02T21:35:58.153 に答える