我在从数据库获取数据时遇到问题并预先知道。
这是我获取数据的方式:
$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)回显到表中,它变为空。
答案 0 :(得分: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
。