这是控制器的片段,
function email($start = 0) {
$result = $this -> admintools -> get_email_errors();
if ($result) {
$data['email'] = $result;
}
$data['header'] = $this -> load -> view('includes/header', '', true);
$data['footer'] = $this -> load -> view('includes/footer', $data, true);
$data['menu_system_errors'] = $this -> load -> view('includes/menu_system_errors', $data, true);
//$config['total_rows'] = $this -> db -> query($query);
$config['base_url'] = '/admin/email';
$config['total_rows'] = 1000;
$config['per_page'] = 10;
$config['use_page_numbers'] = TRUE;
for ($i = $start; $i < $start + $config['per_page']; $i++) {
if (isset($data_paging[$i])) {
$data['email']= $data_paging[$i];
}
}
$this -> pagination -> initialize($config);
$this -> load -> view('/admin/email', $data);
}
这是视图,
<?=$header
?>
<?=$menu_system_errors
?>
<style>
.alpha-link {
font-size: 22px;
}
</style>
<h1>System Errors EMail</h1>
<table>
<thead>
<tr>
<th>Marketer ID</th>
<th></th>
<th>IP </th>
<th>Received Date</th>
<th>From Domain</th>
<th>Subject</th>
</tr>
</thead>
<? foreach ($systemerrors_email as $systemerror) {
?>
<tr>
<td><?=$systemerror->marketerID
?></td>
<td><?=$systemerror->ip
?></td>
<td></td>
<td><?=$systemerror->received
?></td>
<td><?=$systemerror->fromDomain
?></td>
<td><?=$systemerror->subject
?></td>
</tr>
<? }?>
</table>
<?echo $this -> pagination -> create_links();?>
问题是它创建了分页链接但显示了相同的记录,只有10行而不是整行。有什么问题吗?
我使用SELECT和JOIN通过查询获取记录。
答案 0 :(得分:1)
你需要知道配置键是做什么才能让分页工作。
$config['total_rows']
定义您想要显示的总行数;
$config['per_page']
定义每页显示的数量。
您看到显示10个结果的原因是因为您的per_page
值设置为10,如果您想要更多,请将其更改为您想要的值。另外,控制器中的$start
变量不应设置为$this->uri->segment(3)
吗?由于它依赖于URL参数,因此您不允许循环从下一部分行开始 - 您基本上强制它显示前十个查询。如果你设置这个变量使它依赖于动态的东西,你就可以获得其他数据。