我有一个查询将我的所有drupal用户拉入stdClass_object,但是除了使用print_r
之外我无法获取这些值。我想将它们放入下拉列表中,但无法使其正常工作。
stdClass Object ( [uid] => 0 [users_name] => )
输出数组的示例
$result = db_query('SELECT users.uid AS uid, users.name AS users_name FROM users users');
$result_array = is_array($result);
while ($existing_user = db_fetch_object($result)) {
print_r($existing_user); // or do whatever
}
foreach ($existing_user->uid as $message) {
echo $message->users_name;
}
答案 0 :(得分:0)
您不应使用pg_fetch_array()
或任何其他数据库类型特定功能。
相反,只需使用Drupal的数据库功能,它就会自动调整查询。
以下是适合您的代码:
function MYMODULE_get_users() {
$users = array();
$results = db_query("SELECT uid, name FROM {users}");
foreach ($results as $user) {
$users[$user->uid] = $user->name;
}
return $users;
}
以下是您将如何使用此代码:
<select name="uid">
<?php foreach (MYMODULE_get_users() as $user): ?>
<option value="<?php print $user->uid; ?>"><?php print $user->name; ?></option>
<?php endforeach; ?>
</select>
但是,您应该使用Drupal的Form API来构建表单。它将为您处理许多事情,包括验证和提交开箱即用的处理。
检查this article以获取更多信息。另外,请查看Examples模块的源代码,特别是与Form API相关的示例。