❓ ex)
data갯수가 29개이고 한페이지당 4개씩 출력할 경우
1page : 4
2page : 4
3page : 4
...
8page : 1
⚡ 전체회원만...
총 22개의 데이터 중 한페이지당 5개씩 노출하게 제작
1.( 총 data갯수 / 한페이지당 노출할 수 ) 만큼 반복문 돌려서 element생성
<tr> <% float pageno = 10f; //한페이지당 10개씩 노출 int alldata= Integer.parseInt(rs2.getString("ctn")); int total_pg = (int)Math.ceil(alldata/pageno); int no=1; while(no<=total_pg){ %> <td width="20" align="center"><a href="javascript:;"><%=no%></a></td> <% no++;} %> </tr>
=> float으로 받아야함 : ceil로 올림이 적용되기 때문에.. (?)
limit 0,5 : 0부터 5개
limit 5,5 : 5부터 5개
limit 10,5 : 10부터 5개
..
sql의 limit숫자를 적용하는 방법 : (현재번호-1)*한페이지당 출력할 data갯수
-jsp8
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="./dbconfig.jsp" %>
<%
String sms = (String)request.getParameter("ad_sms");
String email = (String)request.getParameter("ad_email");
//String full = (String)request.getParameter("all_user");
if(sms == null || sms == "Y" && email == null || email == "Y"){
sms = "Y";
email = "Y";
}
String table = "mall_member";
String sql = "";
String sql2 = "";
String full = "Y"; //페이징 확인 위해 임시로 full값 강제로 넣어둠... 계속 전체보기로
//paging
int pgno = 0; //page번호 핸들링위한 전역변수
if(request.getParameter("pno") == null || request.getParameter("pno")=="1"){ //최초 접속 시
pgno = 0;
}else{ //사용자가 페이지 번호를 클릭
int pp = Integer.parseInt(request.getParameter("pno"));
//sql의 limit숫자를 적용하는 방법 : (현재번호-1)*한페이지당 출력할 data갯수
pgno = (pp-1)*5;
}
out.print(pgno);
if(full == null || full.equals("null")){ //전체회원이 아닌 각 파트별 수신여부 회원 리스트
sql = "select * from "+ table +" where ad_sms=? and ad_email=? order by midx desc";
sql2 = "select count(*) as ctn from "+table + " where ad_sms=? and ad_email=? order by midx desc";
}else{ //전체회원 출력 파트
sql = "select * from " + table + " order by midx desc limit "+ pgno +",5";
sql2 = "select count(*) as ctn from " + table + " order by midx desc";
};
PreparedStatement ps = dbcon.prepareStatement(sql);
if(full==null || full.equals("null")){
ps.setString(1,sms);
ps.setString(2,email);
}
ResultSet rs = ps.executeQuery();
ps = dbcon.prepareStatement(sql2);
if(full==null || full.equals("null")){
ps.setString(1,sms);
ps.setString(2,email);
}
ResultSet rs2 = ps.executeQuery();
rs2.next(); //반복문 사용하지않을경우엔 이렇게 따로한번 써줘야함
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원정보 리스트 출력 파트(select)</title>
</head>
<body>
<!-- SPA형태 - 같은 페이지에서 돌림 -->
<form id="frm" method="post" action="./jsp8.jsp">
<input type="hidden" name="all_user" value=<%=full%>> <!-- hidden에 Y가 있을 경우 전체회원 리스트 출력 -->
<p>
SMS 광고수신 :
<input type="radio" name="ad_sms" value="Y" <%if(sms.equals("Y")) out.print("checked");%>>동의함
<input type="radio" name="ad_sms" value="N" <%if(sms.equals("N")) out.print("checked");%>>동의안함
</p>
<p>
Email 광고수신:
<input type="radio" name="ad_email" value="Y" <%if(email.equals("Y")) out.print("checked");%>>동의함
<input type="radio" name="ad_email" value="N" <%if(email.equals("N")) out.print("checked");%>>동의안함
</p>
<input type="button" value="검색" onclick="search()">
<input type="button" value="전체회원" onclick="all_member()">
</form>
<form id="frm2" method="post" action="./jsp10.jsp">
<input type="hidden" name="idx" value="">
</form>
<table border="1" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>번호</th>
<th>아이디</th>
<th>고객명</th>
<th>통신사</th>
<th>전화번호</th>
<th>이메일</th>
<th>SMS 수신 여부</th>
<th>이메일 수신 여부</th>
<th>관리</th>
</tr>
</thead>
<tbody>
<%
//일련번호
//일련번호 또한 페이지에 맞게 출력 : (data전체갯수-한페이지당 출력할 data갯수)
int w= Integer.parseInt(rs2.getString("ctn")) - pgno;
while(rs.next()){
%>
<tr>
<td><%= w %></td>
<td><a href="javascript:void modify(<%= rs.getInt("midx")%>)"><%= rs.getString("mall_id")%></a></td>
<td><%= rs.getString("mall_name")%></td>
<td><%= rs.getString("tel_corp")%></td>
<td><%= rs.getString("tel_no")%></td>
<td><%= rs.getString("mall_email")%></td>
<td><%= rs.getString("ad_sms")%></td>
<td><%= rs.getString("ad_email")%></td>
<td>
<input type="button" value="상세보기" onclick="viewpage(<%= rs.getInt("midx")%>)">
<input type="button" value="삭제">
</td>
</tr>
<%
w--; }
%>
</tbody>
</table>
<!-- paging -->
<table border="1" cellpadding="0" cellspacing="0" style="margin : 10px auto">
<tr>
<%
float pageno = 5f; //한페이지당 5개씩 노출
int alldata= Integer.parseInt(rs2.getString("ctn"));
int total_pg = (int)Math.ceil(alldata/pageno);
int no=1;
while(no<=total_pg){
%>
<td width="20" align="center"><a href="./jsp8.jsp?pno=<%=no%>"><%=no%></a></td>
<%
no++;}
%>
</tr>
</table>
<form>
<input type="hidden" >
</form>
</body>
<script src="./js/jsp8.js?v=3"></script>
</html>
<%
rs2.close();
rs.close();
ps.close();
dbcon.close();
%>
한번 확인해보쇼
너무 어려부다
데이터는 이거 .. 복구해서 해보쇼..
'CLASS > JSP' 카테고리의 다른 글
#4-2 / 첨부파일 여러개 업로드시 사용법 (0) | 2024.06.27 |
---|---|
#4-1 / 상품 등록 및 삭제 (0) | 2024.06.27 |
#3-2 / 2예제 고객정보 수정페이지(update) (0) | 2024.06.26 |
#3-1 / 2예제 상세보기-고객별 포인트,구매내역 추가 (0) | 2024.06.26 |
#2-1 / jsp include , 수신여부에 따른 회원정보 리스트 출력 , node추가 (0) | 2024.06.25 |