0
でページネーションを使用して検索を実装する方法Google検索でどこでも検索されていますが、この問題について明確な答えが見つかりませんでした。Kohana 2.3.x
私はウェブページの検索を行い、結果に改ページを行い、ヘッダーでソートしようとしています。
私があれば、ユーザは、検索基準「A」として「」示している含まれているすべての名前を指定することを希望プロトタイプhttp://i55.tinypic.com/2dlrqbs.png
を参照してください。私の問題は、どのように私はナビゲーションのリンク文字列を置くことができます:?name = a。
検索条件を返信しない場合は、次のページをクリックするとすべてのレコードが表示されます。私はそれを作るために管理し、それ
コントローラコード(案)
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;
}
おかげ
。 AFAIR、ページネーションは現在のクエリ文字列を自動的に追加します。 – biakaveron