Ramtin Gh
Ramtin Gh

Reputation: 1050

Getting data From Database using foreach from an array

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.

Upvotes: 1

Views: 23463

Answers (1)

WojtekT
WojtekT

Reputation: 4775

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.

Upvotes: 3

Related Questions