代码之家  ›  专栏  ›  技术社区  ›  JeroenEijkhof

从sql查询加载用户-正确的方法

  •  1
  • JeroenEijkhof  · 技术社区  · 16 年前

    我有一个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
    

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

    我问了一个 question previously 我只知道我想做的事情会更容易 没有视图 -所以我要用一个模板文件代替。
    所以这个问题。

    我知道怎么做,但显然 method is worth -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;
    }
    

    请帮助我 应该 去做吧。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Henrik Opel    16 年前

    我看你的基本方法不错,只是 profile_load_profile() 是多余的:

    这个 user_load() 函数将调用 hook_user 通过“加载”操作,配置文件模块实现 钩子用户 和电话 配置文件加载配置文件() 对于加载操作本身,所以当您显式调用它时,它已经被隐式调用,您可以直接删除它。

    推荐文章