データベースからデータを取得してforeachするのに問題があります。
これが私がデータを取得する方法です:
$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)をテーブルにエコーすると、空になります。