이 페이징 소스를 참고 해서 페이징을 만드는 중인데요...

데이터베이스에 있는 게시물의 고유번호가 auto_icrement 라서 1부터 자동증가가 되는데요

문제는 게시물이 삭제되면 그 번호는 영영 사라집니다.. 무슨말인지?아시죠?

[ 만약 게시물이 1,2,3,4,5,6 총 6개의 게시물이 있었는데 3번 게시물을 삭제하면 1,2,4,5,6 이렇게 빵구 납니다. ]

그래서 start 와 end 를 저렇게 계산하면 심각한 오류가 날 것 같은데.. 무슨 방법이 없을까요?

 

도와주십쇼 고수님들 복습하실겸 재미로 소스분석해보실겸 ... 부탁드립니다. 

 

<mark> 

 

///////////////////////////////////////////////////////////////////////////////////

 <%@page c %>
<html>
 <head>
  <%
   request.setCharacterEncoding("euc-kr");
   int totalRecord=Integer.parseInt(request.getParameter("totalRecord"));
   
   int numPerPage = 10; // 한페이지에 레코드 수
   int pagePerBlock = 15; // 한 페이징 블럭 당 보여줄 갯수
   int totalPage = 0;  // 전체 페이지 수

   int totalBlock = 0; // 전체 블럭
   int nowPage = 1; // 현재 페이지
   int nowBlock = 1; // 현재 블럭
   
   int start = 0; // 데이터베이스의 셀렉트문 첫시작 넘버
   int end = 10; // 셀렉트문 몇개만 rs.next(); 해서 가져올지..

   int listSize = 0; // 현재 읽어온 레코드 수

   if(request.getParameter("nowPage") != null){
    nowPage = Integer.parseInt(request.getParameter("nowPage"));
   }

   start = (nowPage * numPerPage) - numPerPage; //

   end = start + numPerPage ; //

   totalPage = (int)Math.ceil((double)totalRecord/numPerPage); // 전체 페이지 수

   nowBlock = (int)Math.ceil((double)nowPage/pagePerBlock); // 현재블럭 계산

   totalBlock = (int)Math.ceil((double)totalPage/pagePerBlock); // 전체블럭

   // 현재까지 초기화 해줘야 할 것들

  %>
  <title>테스트..</title>
  <script type="text/javascript">
  
   function pageing(page){
    document.readFrm.nowPage.value = page;
    document.readFrm.submit();
   }
   function block(value){
    document.readFrm.nowPage.value=<%= pagePerBlock %> * (value-1)+1;
    document.readFrm.submit();
   }
  
  </script>

 </head>
 <body style="background-color:#ddd">
  
  <div align="center">
   <br/>
      <h2>페이징 & 블록 처리 테스트</h2>
   <br/>
   
   <table align="center" border="0" width="80%">
    <tr align="center">
     <td>
      Total : <%=totalRecord%>Articles(<font color="red"><%=nowPage%>/<%=totalPage%>Pages</font>)
     </td>
    </tr>
   </table>
   
   <table>

    <tr>
     <td>게시물 번호 : &nbsp;</td>
     <%
      listSize = totalRecord-start;
      
      for(int i = 0; i<numPerPage; i++){
       if(i==listSize) break;
       
     %>
     <td align="center">
      
      <%= totalRecord - ((nowPage-1)*numPerPage) - i %>&nbsp;

     </td>
     
     <%}%>
     

     <td align="center">&nbsp;</td>

    </tr>

   </table>
   
   <!-- 페이징 및 블럭  -->
   <table>
    
    <tr>
     <td>
      <!-- 페이징 및 블럭 처리 start -->
      <%
       int pageStart = (nowBlock-1)*pagePerBlock + 1; // 하단 페이지 시작번호
       int pageEnd = ((pageStart+pagePerBlock)<totalPage) ? (pageStart+pagePerBlock) : totalPage + 1; // 하단 페이지 끝 번호
       
       if(totalPage != 0){
        if(nowBlock > 1){%>
      <a href="javascript_:block('<%=nowBlock-1%>')">prev...</a><%}%>&nbsp;
      <%for ( ; pageStart<pageEnd;pageStart++){ %>
      <a href="javascript_:pageing('<%=pageStart %>')">
      <%if(pageStart==nowPage) {%><font color="blue"> <%}%>
      
       
       [<%=pageStart %>]
       <%if(pageStart==nowPage){ %></font> <%}%></a>
       <%}//for %>&nbsp;
       <%if (totalBlock>nowBlock) {%>
       <a href="javascript_:block('<%=nowBlock+1 %>')">...next</a>
       
       <%}%>&nbsp;
       <%}%>
       
       
       <!-- 페이징 및 블럭 처리 End --> 
      
     </td>  
    </tr>
   </table>
   
   <hr width="45%" />
   <form name="readFrm">
    <input type="hidden" name="totalRecord" value="<%=totalRecord%>">
     <input type="hidden" name="nowPage" value="<%=nowPage%>">
   </form>
    <b>
    <span style="color:#ff6c70">전체 게시글 수</span> : <%=totalRecord %>&nbsp;
    <span style="color:#ff6c70">페이지 당 게시글 수</span>: <%=numPerPage %>&nbsp;
    <span style="color:#ff6c70">페이지 당 보여줄 블럭 수</span> : <%=pagePerBlock %>&nbsp;
    <span style="color:#ff6c70">총 페이지 갯수</span> : <%=totalPage %>&nbsp;<br>
    <span style="color:#ff6c70">총 블럭 수</span> : <%=totalBlock %>&nbsp;
    <span style="color:#ff6c70">현재 페이지</span> : <%=nowPage %>&nbsp;
    <span style="color:#ff6c70">현재 블럭</span> : <%=nowBlock %>&nbsp;
    </b>
    <p/>
    <input type="button" value="TotalRecord 입력 폼" >
   
  
  </div>
 </body>
</html>

 

</mark>