【问题标题】:Getting data From Database using foreach from an array使用数组中的foreach从数据库中获取数据
【发布时间】:2012-06-13 21:05:01
【问题描述】:

我在从数据库中获取数据并对其进行 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 )回显到表中,结果为空。

【问题讨论】:

    标签: php mysql database arrays foreach


    【解决方案1】:

    从所有 $result 引用中删除 [0]。已经被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

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 2015-07-10
      • 2014-12-03
      • 1970-01-01
      • 2020-01-22
      • 2014-10-16
      • 2011-08-09
      • 2016-02-14
      • 1970-01-01
      相关资源
      最近更新 更多