1

I have a problem getting my data from database and foreach it.

This is how I get data:

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

and when I print array its something like this:

(
[0] => Array
(
[ID] => 4
[user_login] => member3
[user_name] => member3
[user_email] => [email protected]
)

So far everything is great, but when I want to use data I get empty result, this is how I used 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' );

I echo the values (for example $user ) into tables after this and it comes out empty.

1 Answer 1

3

Remove [0] from all $result references. It is already handled by 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' );
   //...
}

Also in you print_r result there's no such field display_name.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.