thinkphp mysql排名_thinkPHP统计排行与分页显示功能示例
时间: 2023-07-31 15:09:19 浏览: 201
以下是一个使用 ThinkPHP 进行排名统计和分页显示的示例代码:
1. 控制器代码:
```
public function rank() {
$map['status'] = 1;
$list = Db::name('article')->where($map)->field('id, title, views')->order('views desc')->paginate(10);
$this->assign('list', $list);
return $this->fetch();
}
```
2. 视图代码:
```
<table>
<thead>
<tr>
<th>排名</th>
<th>标题</th>
<th>浏览量</th>
</tr>
</thead>
<tbody>
<?php $i = ($list->currentPage() - 1) * $list->listRows() + 1; ?>
<?php foreach ($list as $vo): ?>
<tr>
<td><?php echo $i++; ?></td>
<td><?php echo $vo['title']; ?></td>
<td><?php echo $vo['views']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="pagination">
<?php echo $list->render(); ?>
</div>
```
以上代码中,我们使用了 `Db::name()` 方法来获取文章列表,通过 `field()` 方法指定需要的字段,使用 `order()` 方法按照浏览量降序排列,然后使用 `paginate()` 方法进行分页处理。
在视图中,我们使用了 `$list` 变量来循环遍历文章列表,并使用 `currentPage()` 和 `listRows()` 方法计算出当前页数和每页显示行数,再通过循环计算得出文章的排名。最后,我们使用 `render()` 方法来生成分页链接。
阅读全文