2014-12-27 2 views
0

5 사용자를 표시하는 방법을, 내가최고에게 내가 활동 포인트에 최고 사용자를 보여주기 위해 노력하고 phpfox

<?php 
$dbase = Phpfox::getLib('database'); 
      $aRow = $dbase->select(Phpfox::getUserField() . ', ur.activity_points AS score') 
        ->from(Phpfox::getT('user'), 'u') 
        ->join(Phpfox::getT('user_activity'),'ur','ur.user_id = u.user_id') 
        ->where('ur.activity_points > 0') 
        ->limit(10)   
        ->order('ur.activity_points DESC') 
        ->execute('getRow'); 
?> 
<?php if (count ($aRow)){ ?> 
<div class="block" id="js_sortable_friend_mini"><div class="title ">Top Active Users</div> 
<div class="clear" style="height: 5px;"></div> 
<ul id="topuserpoints"> 
<div class="name_userpoints"> 
<?php echo '<a href="' . Phpfox::getLib('phpfox.url')->makeUrl('profile', $aRow['user_name']) . '">' . $aRow['full_name'] . '</a>'; ?> 
</div> 
<div class="score_userpoints"> 
<?php echo $aRow['score']; ?> 
</div></ul> 
</div> 
<div class="clear"></div> 
<?php } unset($aRow); ?> 

이 코드는 정상 사용자를 줄이 코드를 사용하는 경우에만 최고 사용자를 얻을 수 있습니다.

   ...... 
       ->limit(5)   
       ->order('ur.activity_points DESC') 
       ->execute('getRows'); 
       ..... 

답변

0

시도를 도와주세요 싶어요 당신의 질문.

->execute('getRow'); 

getRow는 하나의 레코드 만 리턴하고 getRows는 둘 이상을 리턴합니다.

아래 코드는 활동 점수에 따라 순위 옵션을 표시합니다.

$dbase = Phpfox::getLib('database'); 
$aRow = $dbase->select(Phpfox::getUserField() . ', ur.activity_points , FIND_IN_SET(activity_points, (SELECT GROUP_CONCAT(DISTINCT activity_points ORDER BY activity_points DESC) FROM '.Phpfox::getT('user_activity').')) AS rank ') 
       ->from(Phpfox::getT('user'), 'u') 
       ->join(Phpfox::getT('user_activity'),'ur','ur.user_id = u.user_id') 
       ->where('ur.activity_points > 0') 
       ->limit(10)   
       ->order('rank') 
       ->execute('getRows'); 
+0

친애하는 각하, 답장을 보내 주셔서 감사합니다. 그러나 5 개는 필요한 결과를 제공하지 않습니다. 이 코드는 최상위 사용자 만 표시하며 상위 5 명의 사용자를 표시하려고합니다. 어떤 생각? 제발 도와주세요 – temmy

+0

데이터베이스에 적어도 5 명의 사용자가 있으며 해당 포인트가 0보다 다른가요? –

+0

예, 많은 사용자가 있습니다. 또한, 그 목록의 현재 사용자 위치를 보여주고 싶습니다 – temmy

0

는 당신이 getRow 대신 getRows 또는 getSlaveRows으로 시도 할 수 가장의 5를 원하는 경우하지만, 5. 상위 5에 "getRows"를 설정 제한으로 실행

관련 문제