Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 从SQL查询加载用户-正确的方法_Drupal_Drupal 6_Drupal Themes - Fatal编程技术网

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

Drupal 从SQL查询加载用户-正确的方法,drupal,drupal-6,drupal-themes,Drupal,Drupal 6,Drupal Themes,我有一个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 我需要将它们作为对象加载到一个数组中以供列出 我问了一个问题,答案是我想做的事情在没有视图的情况下更容易完成,所以我将使用模板文件来代替。 所以这个问题 我知道怎么做,但显然我的 我想这样做: $research

我有一个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
我需要将它们作为对象加载到一个数组中以供列出

我问了一个问题,答案是我想做的事情在没有视图的情况下更容易完成,所以我将使用模板文件来代替。
所以这个问题

我知道怎么做,但显然我的

我想这样做:

$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;
}

请帮助我了解我应该如何做。

我认为你的基本方法很好,除了调用
profile\u load\u profile()
是多余的:


user\u load()
函数将使用操作“load”调用
hook\u user
,配置文件模块实现
hook\u user
并为加载操作本身调用
profile\u load\u profile()
,因此在您显式调用它时,它已经被隐式调用,您可以直接删除它。

我认为您的基本方法很好,只是对
profile\u load\u profile()
的调用是多余的:


user\u load()
函数将使用操作“load”调用
hook\u user
,配置文件模块实现
hook\u user
并为加载操作本身调用
profile\u load\u profile()
,因此在您显式调用它时,它已经被隐式调用了,您可以放弃它。

我很好奇,您说每个人都告诉您,最简单的方法是使用视图,但您仍然没有?如果对视图执行此操作,则不需要任何代码,只需要一点高级主题。如果你执意不使用视图,那么看看用户管理页面(Drupal core)是如何提取数据的。@Decipher:感谢你提供有关用户管理页面的提示,这是一种有趣的方法。@Decipher:关于视图与模板文件。事实上,我说的恰恰相反:“没有观点会更容易做到”。对不起,我一定是误读了。作为那种尽可能多地使用代码的人,我想换一种方式,我认为视图是更容易的选择,因为它基本上只是一个SQL查询GUI。我很好奇,你说每个人都告诉过你,最简单的方法是使用视图,但你仍然没有?如果对视图执行此操作,则不需要任何代码,只需要一点高级主题。如果你执意不使用视图,那么看看用户管理页面(Drupal core)是如何提取数据的。@Decipher:感谢你提供有关用户管理页面的提示,这是一种有趣的方法。@Decipher:关于视图与模板文件。事实上,我说的恰恰相反:“没有观点会更容易做到”。对不起,我一定是误读了。作为那种尽可能多地使用代码的人,我想换一种方式,我认为视图将是更容易的选择,因为它基本上只是一个SQL查询GUI。感谢Henrik,我删除了这一行,它仍然可以正常工作。出于某种原因,我的印象是,如果没有调用
profile\u load\u profile()
,我的所有新配置文件字段都不会添加到对象中。感谢Henrik,我删除了这一行,它仍然可以正常工作。出于某种原因,我的印象是,如果没有调用
profile\u load\u profile()
,我的所有新概要文件字段都不会添加到对象中。