1

我有一个 SQL 查询,列出了uid所有具有特定角色的用户:

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

我需要将它们全部加载到一个数组中作为列出的对象。

我之前问了一个问题,只给了我一个答案,即如果没有 Views,我想做的事情会更容易完成- 所以我将使用模板文件。
因此这个问题。

我知道该怎么做,但显然我的方法值得-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通过操作“加载”调用,并且配置文件模块实现hook_user并调用profile_load_profile()加载操作本身,因此当您显式调用它时,它已经被隐式调用,您可以删除它。

于 2010-03-02T21:35:58.153 回答