我从PHP网站获得以下代码,在调用时,会返回网站上用户组数据库中的管理员列表:
function bp_group_list_admins( $group = false ) {
global $groups_template;
if ( empty( $group ) )
$group =& $groups_template->group;
if ( !empty( $group->admins ) ) { ?>
<ul id="group-admins">
<?php foreach( (array) $group->admins as $admin ) { ?>
<li>
<a href="<?php echo bp_core_get_user_domain( $admin->user_id, $admin->user_nicename, $admin->user_login ) ?>"><?php echo bp_core_fetch_avatar( array( 'item_id' => $admin->user_id, 'email' => $admin->user_email, 'alt' => sprintf( __( 'Profile picture of %s', 'buddypress' ), bp_core_get_user_displayname( $admin->user_id ) ) ) ) ?></a>
</li>
<?php } ?>
</ul>
<?php } else { ?>
<span class="activity">No Admins</span>
<?php } ?>
我想将返回的结果数量限制为最多两个(即列出的两个管理员)。这可以通过改变上面的代码来实现吗?我该怎么做呢?
答案 0 :(得分:0)
您的代码不是很有帮助,因为不清楚是否从MySQL查询中检索了管理员数组,如果是,那么。
但是,执行所需操作的简单方法是将for-each循环更改为只有两次迭代的for循环。在这种情况下,您只会显示数组中的前两个管理员。
如果从MySQL查询中检索到管理员组,则必须找到该查询并在其末尾添加limit 2
子句。
答案 1 :(得分:0)
例如,使用LIMIT 2。
SELECT * FROM `table` WHERE `condition` = ? LIMIT 10
答案 2 :(得分:0)
最好的方法是直接在查询中限制数据,由另一个用户回答。
如果且仅当您出于某种原因无法更改查询/数据时,则只需突破循环
function bp_group_list_admins( $group = false ) {
global $groups_template;
if ( empty( $group ) )
$group =& $groups_template->group;
if ( !empty( $group->admins ) ) { ?>
<ul id="group-admins">
<?php
$i = 0;
foreach( (array) $group->admins as $admin ) { ?>
<li>
<a href="<?php echo bp_core_get_user_domain( $admin->user_id, $admin->user_nicename, $admin->user_login ) ?>"><?php echo bp_core_fetch_avatar( array( 'item_id' => $admin->user_id, 'email' => $admin->user_email, 'alt' => sprintf( __( 'Profile picture of %s', 'buddypress' ), bp_core_get_user_displayname( $admin->user_id ) ) ) ) ?></a>
</li>
<?php
$i++;
if ($i >= 2) { break; }
} ?>
</ul>
<?php } else { ?>
<span class="activity">No Admins</span>
<?php } ?>