| 제목 | [초보] 머리도 식힐겸 이거 함 보실래요? ㅋ | ||
|---|---|---|---|
| 글쓴이 | 헛발이 | 작성시각 | 2009/11/25 11:12:29 |
|
|
|||
|
페이지 할때요... 10개씩 1페이지 누르면 limit 가 1 10 이 되고 2페이지 누르면 limit 가 10 10 이 되고 3페이지 누르면 limit 가 20 10 이 되고 이렇게 되는데요...이렇게 되다보니.. 1페이지에서 문제가 발생하네요.. limit 1 10 이렇게 되다 보니 가장 첫번째 데이터를 못 가져 오던데요... 이거 따로 처리 해 줘야 하는건가요? 아님 절묘한 루틴이 있는데 제가 모르는건가요? ^^; |
|||
| 다음글 | [초보] codeigniter 뭐가 좋아요? (9) | ||
| 이전글 | [초보] 페이징 하는데요.. (2) | ||
|
ci세상
/
2009/11/25 11:21:15 /
추천
0
|
|
헛발이
/
2009/11/25 11:25:43 /
추천
0
콘트롤
function members()
{
if (!$this->tank_auth->is_logged_in()) redirect('/auth/login/'); //Login Check
$this->load->library('pagination');
$this->load->model('biz_model');
$data['biz'] = $this->biz_model->getCategory();
$data['tab_name'] = $this->uri->segment(1);
if ($_POST) {
$search_var = array();
if ($_POST['findkey']) foreach($_POST as $key => $val) $search_var[] = "{$key}/{$val}";
$search_url = implode("/",$search_var);
$seg_url = explode("/",$search_url);
} else {
$seg_url = $this->uri->segment_array();
if ($this->seg_value('findkey',$seg_url)) {
if($this->seg_value('findword',$seg_url)) {
$search_url = "findkey/".$this->seg_value('findkey',$seg_url)."/findword/".$this->seg_value('findword',$seg_url);
} else {
$search_url = "";
}
} else {
$search_url = "";
}
}
$config['per_page'] = 10;
$config['num_links'] = 5;
$config['first_link'] = '最初';
$config['last_link'] = '最後';
$config['full_tag_open'] = '<p class="pager">';
$config['full_tag_close'] = '</p>';
if ($this->seg_value('findkey',$seg_url)) {
$condition = $this->seg_value('findkey',$seg_url)."/".$this->seg_value('findword',$seg_url);
} else {
$condition = null;
}
$config['total_rows'] = $this->biz_model->findAll($condition, 'biz_'.$data['tab_name']);
$config['base_url'] = SET_WEBROOT.'/'.$data['tab_name'].'/members/'.$search_url.'/page';
$config['uri_segment'] = $this->seg_index('page');
$this->pagination->initialize($config);
$data['page_account'] = $this->seg_value('page',$seg_url);
$data['query'] = $this->biz_model->getList($data['page_account'], $config['per_page'], SET_TBL_NAME, $condition);
$data['findkey'] = $this->seg_value('findkey',$seg_url);
$data['findword'] = $this->seg_value('findword',$seg_url);
$this->load->view('/biz/members_view', $data);
}모델
function findAll($condition, $table)
{
$arr = explode('/', $condition);
$new_arr = array();
foreach($arr as $key => $value) {
if($key % 2 != 0)
if($prev_value && $value) {
$this->db->like("$prev_value", $value);
}
$prev_value = $value;
}
$this->db->order_by("id", "desc");
$query = $this->db->get("$table");
return $query->num_rows();
}
function getList($page=null, $rp=null, $table, $condition=null)
{
$arr = explode('/', $condition);
$new_arr = array();
foreach($arr as $key => $value) {
if($key % 2 != 0) $this->db->like("$prev_value", $value);
$prev_value = $value;
}
$this->db->order_by("id", "desc");
$query = $this->db->get($table,$rp,$page);
return $query->result_array();
}이렇게 햇는데요..처음 접하는거라 소스가 엉망이니.. 참고 바람요... |
|
헛발이
/
2009/11/25 11:34:59 /
추천
0
근데 page/로 넘길땐 page값이 없기 때문에.. limit값이 그냥 limit 10 만 들어가기 때문에
결국 limit 0 10의 결과가 되지만.. 페이지의 값이 1이 있는 경우 page/1 일 경우에는 limit가 limit 1 10이 되기 때문에 첫번째 데이터를 못 가져오더라구요... |
|
ci세상
/
2009/11/25 13:05:54 /
추천
0
급한대로 ^^ if($data['page_account'] == 1) $data['page_account'] = 0;
|
|
ci세상
/
2009/11/25 13:16:32 /
추천
0
|
|
헛발이
/
2009/11/25 14:09:18 /
추천
0
그러게요.... 그래서 아무것도 없을땐 0으로 처리 하고
본문에서 돌아가기나.. 등록후 첫페이지로 돌아갈땐 page값을 안 주고 넘여야 할듯싶은데.. 포럼에서보면 또 첫페이지에는 page/1값을 넘기길래요... ^^; 1페이지를 지정해 줘야 하나 하고 고민하고 있었죠... |
|
헛발이
/
2009/11/25 14:20:05 /
추천
0
일단 page/1은 page/로 하는걸로 통과 하겠습니다.. ㅋㅋ
이제 다음으로 넘어가야죠... ^^; |
|
ci세상
/
2009/11/25 14:33:30 /
추천
0
포럼소스는 별도로 만들었습니다.^^
|
토탈카운터 부분에 검색조건 쿼리구문까지 다 넣어주셨는지요?
소스를 함 올려줘보세요^^