[PHP] 간단한 Pager

Posted by Readiz
2016.03.04 12:20 Creation/Programming



간단한 Pager 만들기



Pager 소스는 찾아보면 많이 있지만.. 간단하게 Prev, Next Page만 구현되고 현재 페이지 나오는 Pager를 직접 만들어보기로 해서 작업해보았습니다. COUNT Query를 이용하여 작업하면 간단합니다.


1. 페이지 세팅


	
	if ($_REQUEST['page']) {
		$page = $_REQUEST['page'];
	} else $page = 1; 
	



페이지가 세팅되어 있지 않으면 1페이지로 세팅합니다. 여기서 $page를 직접 쿼리에 넣는다면 SQL injection을 당할 수 있으므로 escaping이 필요합니다. 저같은 경우에는 서버단에서 세팅으로 '를 자동으로 escape 되게 시켜놓았기 때문에 따로 설정하진 않았습니다.




2. SQL Query

	
	// Paging
	$sql = 'SELECT COUNT(*) FROM table';
	
	$result = mysql_query($sql);
	$row = mysql_fetch_assoc($result);
	if ($row['COUNT(*)']  == 0) {
		$page_total_num = 0;
	} else {
		$page_total_num = floor(($row['COUNT(*)'] - 1) / 10) + 1;
	} 
	


  전체 페이지 수를 구합니다. 전체 페이지가 고정되어 있는 경우라면 따로 필요하지 않은데, 그냥 $page_total_num 에 그 고정값을 넣으면 되기 때문입니다.



3. Pager

	
<ul class="pager">
	<?php echo $page . ' of ' . $page_total_num; ?>
	<li class="previous<?php if ($page >= $page_total_num ) echo ' disabled'; ?>"><a href="./?page=<?php echo ($page + 1); ?>&view_mode=<?php echo $vmode; ?>">← Older</a></li>
	<li class="next<?php if ($page == 1) echo ' disabled'; ?>"><a href="./?page=<?php echo ($page - 1); ?>&view_mode=<?php echo $vmode; ?>">Newer →</a></li>
</ul> 
	



  실제 Pager를 HTML로 구현한 부분입니다. 저는 기본적으로 Bootstrap을 사용하여 구성하고 있으므로, Bootstrap을 사용하고 계신 분이라면 바로 결과를 확인하실 수 있습니다.



4. 실행결과




  위 사진처럼 매우 심플한 결과를 확인하실 수 있습니다.


저작자 표시 비영리 변경 금지
신고
Tags
이 댓글을 비밀 댓글로
  1. 으음.. 어려운세계

    다른거 질문있습니다 모니터 원문에서 글작성시 반응형이기때문에 글이 커집니다
    글쓰기 작성시 가로폭을 700px으로 설정하면 폭만큼 줄어들어서 작성되지만
    실제 작성후에는 반응형 인터넷창에 따라 1000px까지도 넓어져버리는데 이거 고정할수있는방법이 없나요?
    인터넷창이 줄어들면 줄어들어도 처음에 700px 이하로만 반응하게 설정하고싶습니다.
    글작성후에 모바일과 인터넷 모니터마다 너무 글폭 차이가나서 주목성이 떨어져서요.

    어느부분을 수정해야할까요?
    • 단순히 폭을 고정하는 문제라면 CSS에 다음처럼 수정하시면 됩니다만..
      #content { width:700px; }
      그러나 전체적인 디자인이 당연히 고정폭 기준으로 맞춰져있지 않기 때문에 한군데만 수정한다고 수정되지 않고, 여러 폭들을 전부다 수정해주셔야 말씀하신 부분이 적용이 제대로 될 것입니다.

      따라서 위 방법 말고 하단 링크를 참고하시어 수정하시는 것을 추천드립니다.
      http://blog.readiz.com/176#.VuAldJyLS5g

      정확하게 원하는 방법은 아닐것이지만 본문 크기를 상대적으로 줄여서 주목도를 높이는 방법이 될 것입니다
    • 답변 감사합니다 한번 내용을 읽어보긴했던건데 저런용도였군요^^!!!

      덕분에 잘해결했습니다.. 만족스러운 사이즈입니다!

티스토리 툴바