%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ include file="/common.inc" %>
<%
// POST 한글 파라미터 깨짐 처리
request.setCharacterEncoding("UTF-8");
// 사용할 객체 초기화
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int pageNumTemp = 1;
int listCount = 10;
int pagePerBlock = 10;
String whereSQL = "";
// 파라미터
String pageNum = request.getParameter("pageNum");
String searchType = request.getParameter("searchType");
String searchText = request.getParameter("searchText");
if(main_seq.equals("")&&sub_seq.equals("")){
response.sendRedirect("/");
return;
}
String contentsSeq = sub_sub_seq.equals("") ? sub_seq : sub_sub_seq;
// 파라미터 초기화
if (searchText == null) {
searchType = "";
searchText = "";
}
if (pageNum != null) {
pageNumTemp = Integer.parseInt(pageNum);
}
// 한글파라미터 처리
String searchTextUTF8 = new String(searchText.getBytes("ISO-8859-1"), "UTF-8");
// 데이터베이스 커넥션 및 질의문 실행
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1/ys", "srpinfotec", "srpinfotec1@#");
// 게시물의 총 수를 얻는 쿼리 실행
pstmt = conn.prepareStatement("SELECT ADMIN_ONLY FROM MENU WHERE SEQ = ?");
pstmt.setInt(1, Integer.parseInt(contentsSeq));
rs = pstmt.executeQuery();
rs.next();
String isAdminOnly = rs.getString(1);
pstmt = conn.prepareStatement("SELECT COUNT(seq) AS TOTAL FROM NOTICE WHERE category=? and delete_yn = 'N' " + whereSQL);
if (!whereSQL.equals("")) {
if (searchType.equals("ALL")) {
pstmt.setString(1, searchTextUTF8);
pstmt.setString(2, searchTextUTF8);
pstmt.setString(3, searchTextUTF8);
} else {
pstmt.setString(1, searchTextUTF8);
}
}else{
pstmt.setString(1,contentsSeq);
}
rs = pstmt.executeQuery();
rs.next();
int totalCount = rs.getInt("TOTAL");
// 게시물 목록을 얻는 쿼리 실행
pstmt = conn.prepareStatement("SELECT A.*, @row_number:=@row_number-1 as row_number FROM (select COUNT(B.SEQ) as rep_cnt, A.* FROM NOTICE A LEFT JOIN REPLY B ON B.type='notice' and A.seq = B.contents_seq group by A.seq, A.menu_seq, A.reg_user_id, A.title, A.contents, A.fix_yn, A.category, A.write_date, A.cnt, A.file_nm, A.delete_yn, A.update_user_id, A.delete_user_id, A.update_dt, A.delete_dt) A, (SELECT @row_number:="+(totalCount+1)+") AS t where category=? "+whereSQL+" and delete_yn = 'N' ORDER BY seq DESC LIMIT ?, ?");
if (!whereSQL.equals("")) {
// 전체검색일시
if (searchType.equals("ALL")) {
pstmt.setString(1, searchTextUTF8);
pstmt.setString(2, searchTextUTF8);
pstmt.setString(3, searchTextUTF8);
pstmt.setInt(4, listCount * (pageNumTemp-1));
pstmt.setInt(5, listCount);
} else {
pstmt.setString(1, searchTextUTF8);
pstmt.setInt(2, listCount * (pageNumTemp-1));
pstmt.setInt(3, listCount);
}
} else {
pstmt.setString(1,contentsSeq);
pstmt.setInt(2, listCount * (pageNumTemp-1));
pstmt.setInt(3, listCount);
}
rs = pstmt.executeQuery();
%>
|
no |
|
|
TITLE |
작성자 |
작성일 |
|
조회 |
|
|
<%while(rs.next()){%>
<%=rs.getString("row_number")%> |
<%if(rs.getString("rep_cnt").equals("0")){%>
&main_seq=<%=main_seq%>&sub_seq=<%=sub_seq%>&sub_sub_seq=<%=sub_sub_seq%>"><%=rs.getString("title")%> |
<%}else{%>
&main_seq=<%=main_seq%>&sub_seq=<%=sub_seq%>&sub_sub_seq=<%=sub_sub_seq%>"><%=rs.getString("title")%><%=" ["+rs.getString("rep_cnt")+"]"%> |
<%}%>
<%=rs.getString("reg_user_id")%> |
<%=rs.getString("write_date").substring(0,10)%> |
<%=rs.getString("cnt")%> |
|
<%}%>
|
|
|
<%
// 페이지 네비게이터
if(totalCount > 0) {
int totalNumOfPage = (totalCount % listCount == 0) ?
totalCount / listCount :
totalCount / listCount + 1;
int totalNumOfBlock = (totalNumOfPage % pagePerBlock == 0) ?
totalNumOfPage / pagePerBlock :
totalNumOfPage / pagePerBlock + 1;
int currentBlock = (pageNumTemp % pagePerBlock == 0) ?
pageNumTemp / pagePerBlock :
pageNumTemp / pagePerBlock + 1;
int startPage = (currentBlock - 1) * pagePerBlock + 1;
int endPage = startPage + pagePerBlock - 1;
if(endPage > totalNumOfPage)
endPage = totalNumOfPage;
boolean isNext = false;
boolean isPrev = false;
if(currentBlock < totalNumOfBlock)
isNext = true;
if(currentBlock > 1)
isPrev = true;
if(totalNumOfBlock == 1){
isNext = false;
isPrev = false;
}
StringBuffer sb = new StringBuffer();
sb.append("");
if(pageNumTemp > 1){
sb.append("< ");
}
if (isPrev) {
int goPrevPage = startPage - pagePerBlock;
sb.append("<< ").append("|");
} else {
}
for (int i = startPage; i <= endPage; i++) {
if (i == pageNumTemp) {
sb.append(" [").append(i).append("]");
} else {
sb.append("[").append(i).append("]");
}
}
if (isNext) {
int goNextPage = startPage + pagePerBlock;
sb.append(" \">>");
} else {
}
if(totalNumOfPage > pageNumTemp){
sb.append(" > | ");
}
sb.append("");
out.print(sb.toString());
}
%>
<%if(isAdminOnly.equals("Y") && session_isadimn.equals("Y")){%>
<%}else if(isAdminOnly.equals("N") && session_logintrue.equals("true")){%>
<%}%>
|
|
<%@include file="/foot.inc"%>