Ich googelte und suchte überall, aber ich konnte keine klare Antwort auf dieses Problem finden.Wie implementiert man eine Suche mit Paginierung mit Kohana 2.3.x
Ich versuche, eine Webseite zu suchen und paginieren das Ergebnis (und sortiert sie nach Kopfzeilen).
Bitte siehe Prototyp http://i55.tinypic.com/2dlrqbs.png
Ich möchte, dass, wenn ein Benutzer als Suchkriterium ‚a‘ angeben, werden alle Namen, die ‚a‘ gezeigt enthält. Mein Problem ist, wie kann ich die Navigationslinks die Zeichenfolge anlegen:? Name = a.
Wenn ich die Suchkriterien nicht zurücksende, werden auf der nächsten Seite alle Datensätze angezeigt.
las ich viel Post zu diesem Thema, und ich weiß noch nicht verstehen, wie es
-Controller-Code (Entwurf)
function listall()
{
$limit = 2 ;
$orderby = 'u.id';
$direction = 'asc';
$name = '';
if ($_POST)
{
$name = $this->input->post('name');
}
if ($_GET)
{
$name = $this->input->post('name');
if ($this->input->get('orderby'))
list($orderby, $direction) = explode(':', $this->input->get('orderby'));
}
$view = new view('character/listall');
$db = Database::instance();
$sql = "select c.id id, c.lastactiontime, c.name character_name, k.name kingdom_name, k.image kingdom_image, from_unixtime(u.last_login, '%d-%m-%y') last_login, u.nationality
from characters c, kingdoms k, users u
where 1=1 and
c.kingdom_id = k.id and
c.user_id = u.id
" ;
if ($name != '')
$sql .= "and c.name like '%" . $name . "%'" ;
$characters = $db->query($sql);
//$characters = ORM::factory("character")->orderby($orderby, $direction)->find_all();
$this->pagination = new Pagination(array(
'base_url'=>'character/listall',
'uri_segment'=>'listall',
'style'=>'digg',
'query_string' => 'page',
'total_items'=>$characters->count(),
'items_per_page'=>$limit));
//$characters = ORM::factory("character")->orderby($orderby, $direction)->find_all($limit, $this->pagination->sql_offset);
$sql .= " order by $orderby $direction ";
$sql .= " limit $limit offset " . $this->pagination->sql_offset ;
kohana::log('debug', $sql);
$characters = $db->query($sql);
$playersinfo = Character_Model::getplayersinfo();
$view->playersinfo = $playersinfo;
$view->pagination = $this->pagination;
$view->characters = $characters;
$this->template->content = $view;
}
Dank
sollte Ihr Code arbeiten?. AFAIR, Paginierung fügt automatisch die aktuelle Abfragezeichenfolge hinzu. – biakaveron