Diese für den Controller-Snippet ist,Nicht in der Lage, durch Aufzeichnungen Paginieren
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);
}
und dies ist die Ansicht,
<?=$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();?>
Das Problem ist es, die Paginierung Links erstellt, zeigt aber die gleiche notieren, wie nur 10 Reihen aber nicht ganz von ihnen. Gibt es ein Problem?
Ich bekomme die Datensätze durch eine Abfrage mit SELECT und JOIN.
Normalerweise paginieren Sie auf Datenbankebene, so dass Sie nicht viele Zillionen von Datensätzen abrufen und alle außer der X-pro-Seite, die Sie anzeigen möchten, wegwerfen. –
Sie sollten eine LIMIT-Klausel in Ihre mySQL-Abfrage einfügen und die Offset-Funktion verwenden. –