无法通过记录分页

时间:2012-04-02 18:08:17

标签: php codeigniter

这是控制器的片段,

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通过查询获取记录。

1 个答案:

答案 0 :(得分:1)

你需要知道配置键是做什么才能让分页工作。

$config['total_rows']定义您想要显示的总行数;

$config['per_page']定义每页显示的数量。

您看到显示10个结果的原因是因为您的per_page值设置为10,如果您想要更多,请将其更改为您想要的值。另外,控制器中的$start变量不应设置为$this->uri->segment(3)吗?由于它依赖于URL参数,因此您不允许循环从下一部分行开始 - 您基本上强制它显示前十个查询。如果你设置这个变量使它依赖于动态的东西,你就可以获得其他数据。