1

我从数据库中获取数据并对其进行处理时遇到问题。

这就是我获取数据的方式:

    $results = $db->get_results('SELECT *
    FROM `'.$db->base_prefix.'users` 
    LEFT JOIN `'.$db->base_prefix.'usermeta` ON '.$db->base_prefix.'users.id = '.$db->base_prefix.'usermeta.user_id 
    AND '.$db->base_prefix.'usermeta.meta_key=\''.'cpoints'.'\''.$extraquery.' 
    ORDER BY '.$db->base_prefix.'usermeta.meta_value+0 DESC'
    . $limit . ';'
    ,ARRAY_A);

当我打印数组时,它是这样的:

(
[0] => Array
(
[ID] => 4
[user_login] => member3
[user_name] => member3
[user_email] => member3@member.com
)

到目前为止一切都很好,但是当我想使用数据时,我得到空结果,这就是我使用 foreach 的方式:

foreach($results as $result){
    $user =  $result[0]['ID'];          
    $username = $result[0]['user_login'];
    $user_nickname = $result[0]['display_name'];
    $gravatar = get_avatar( $result[0]['ID'] , $size = '32' );

在此之后,我将值(例如 $user )回显到表中,结果为空。

4

1 回答 1

3

[0]从所有引用中删除$result。它已经由以下人员处理foreach

foreach($results as $result){
   $user =  $result['ID'];          
   $username = $result['user_login'];
   $user_nickname = $result['display_name']; //shouldn't this be user_name?
   $gravatar = get_avatar( $result['ID'] , $size = '32' );
   //...
}

同样在你print_r的结果中没有这样的字段display_name

于 2012-06-10T20:13:10.993 回答