데일리로그C:
article thumbnail

다음 프로젝트 때는 배열 사용하지말고 DB, admin에 테이블 관리를 만들기(게시판 관리)


 

1. 작성한 글

<bash />
<table border=1 width=100% style="border-collapse: collapse;"> <tr> <td height=20>내가 작성한 글</td> </tr> <tr> <td> <% String[] table_name = {"notice","gallery","qna","free"}; // 게시판 마다 부르기 위해 배열 사용(code 변수 대신 사용 할 것!) for(int i=0; i<table_name.length; i++){ String sql_zip = "select * from "+table_name[i]+" where id = '"+session_id+"'"; // 작성자 id = 로그인되어있는 id Connection con_zip = DriverManager.getConnection(url, user, password); Statement stmt_zip = con_zip.createStatement(); ResultSet rs_zip = stmt_zip.executeQuery(sql_zip); while(rs_zip.next()) { int uid = rs_zip.getInt("uid"); String gongji = rs_zip.getString("gongji"); String subject = rs_zip.getString("subject"); String id = rs_zip.getString("id"); String name = rs_zip.getString("name"); String signdate = rs_zip.getString("signdate").substring(0,10); if(subject.length() >= 20) { subject = subject.substring(0,20) + "..."; } %> <table> <tr> <td><%=table_name[i]%>:<%=uid %></td> <td><%=subject %></td> <td><%=id %>(<%=name %>)</td> <td><%=signdate %></td> <td><%=subject %></td> </tr> </table> <% } rs_zip.close(); stmt_zip.close(); con_zip.close(); } %> </td> </tr> </table>

 

2. 내가 작성한 댓글 구현  

<bash />
<table border=1 width=600 class="tb_border" style="border-collapse: collapse;"> <tr> <td width=70 align=center><font size=4><b>No</b></font></td> <td width=180 align=center><font size=4><b>내용</b></font></td> <td width=50 align=center><font size=4><b>작성자</b></font></td> <td width=100 align=center><font size=4><b>작성일</b></font></td> </tr> <tr> <td colspan="4"> <% String sql_com_zip = "select * from comment where com_id = '"+session_id+"'"; // 작성자 id = 로그인되어있는 id Connection con_com_zip = DriverManager.getConnection(url, user, password); Statement stmt_com_zip = con_com_zip.createStatement(); ResultSet rs_com_zip = stmt_com_zip.executeQuery(sql_com_zip); while(rs_com_zip.next()) { int com_uid = rs_com_zip.getInt("com_uid"); String com_comment = rs_com_zip.getString("com_comment"); String com_id = rs_com_zip.getString("com_id"); String com_name = rs_com_zip.getString("com_name"); String com_date = rs_com_zip.getString("com_date").substring(0,10); if(com_comment.length() >= 15) { com_comment = com_comment.substring(0,15) + "..."; } %> <table border=0 width=100%> <tr> <td width=70><%=com_uid %></td> <td width=180 ><%=com_comment %></td> <td width=50 align=center><%=com_name %></td> <td width=100 align=right><%=com_date %></td> </tr> </table> <% } rs_com_zip.close(); stmt_com_zip.close(); con_com_zip.close(); %> </td> </tr> </table>

 

3. 개수 제한 하고 더보기 처리하기

1) 내가 쓴글 :  num 전역변수 처리해서 break 걸기

 ㄴ> why? sql구문이 테이블을 반복하는 거라 limit 걸면 테이블마다 20개 가져오는 걸로 됨

<bash />
<% String[] table_name = {"notice","gallery","free","qna"}; // 게시판 마다 부르기 위해 배열 사용(code 변수 대신 사용 할 것!) int num = 1; //20개 까지 출력 처리(전역변수 처리) for(int i=0; i<table_name.length; i++){ String sql_zip = "select * from "+table_name[i]+" where id = '"+session_id+"' "; // 작성자 id = 로그인되어있는 id Connection con_zip = DriverManager.getConnection(url, user, password); Statement stmt_zip = con_zip.createStatement(); ResultSet rs_zip = stmt_zip.executeQuery(sql_zip); //bbs 폴더 변수 처리 String bbs_name = "bbs"; if(table_name[i].equals("gallery")){ bbs_name = "bbs2"; }else if(table_name[i].equals("free")){ bbs_name = "bbs3"; }else if(table_name[i].equals("qna")){ bbs_name = "bbs4"; } while(rs_zip.next()) { if(num == 21){ // 20까지 반복 돌리고 출력, 21부터는 반복문 종료 break; } int uid = rs_zip.getInt("uid"); String gongji = rs_zip.getString("gongji"); String subject = rs_zip.getString("subject"); String id = rs_zip.getString("id"); String name = rs_zip.getString("name"); String signdate = rs_zip.getString("signdate").substring(0,10); if(subject.length() >= 15) { subject = subject.substring(0,15) + "..."; } %> <table border=0 width=100% > <tr> <td width=100><%=table_name[i]%>: <%=uid %></td> <td width=250 ><a href="/<%=bbs_name%>/view.jsp?code=<%=table_name[i]%>&uid=<%=uid%>"><%=subject%></a></td> <td width=100 align=center><%=name %></td> <td width=100 align=right><%=signdate %></td> </tr> </table> <% num++; // 1씩 증가(20까지만) } rs_zip.close(); stmt_zip.close(); con_zip.close(); } %>

 

2) 내가 쓴 댓글 : limit 처리

<bash />
<% String sql_com_zip = "select * from comment where com_id = '"+session_id+"' limit 0,20"; // 작성자 id = 로그인되어있는 id Connection con_com_zip = DriverManager.getConnection(url, user, password); Statement stmt_com_zip = con_com_zip.createStatement(); ResultSet rs_com_zip = stmt_com_zip.executeQuery(sql_com_zip); while(rs_com_zip.next()) { int com_uid = rs_com_zip.getInt("com_uid"); String com_comment = rs_com_zip.getString("com_comment"); String com_table = rs_com_zip.getString("com_table"); String com_id = rs_com_zip.getString("com_id"); String com_name = rs_com_zip.getString("com_name"); String com_date = rs_com_zip.getString("com_date").substring(0,10); if(com_comment.length() >= 15) { com_comment = com_comment.substring(0,15) + "..."; } //bbs 폴더 변수 처리 String bbs_name = "bbs"; if(com_table.equals("gallery")){ bbs_name = "bbs2"; }else if(com_table.equals("free")){ bbs_name = "bbs3"; }else if(com_table.equals("qna")){ bbs_name = "bbs4"; } %> <table border=0 width=100%> <tr> <td width=100><%=com_table%>: <%=com_uid %></td> <td width=250 ><a href="/<%=bbs_name%>/view.jsp?code=<%=com_table%>&uid=<%=com_uid%>"><%=com_comment %></a></td> <td width=100 align=center><%=com_name %></td> <td width=100 align=right><%=com_date %></td> </tr> </table> <% } rs_com_zip.close(); stmt_com_zip.close(); con_com_zip.close(); %>

 

4. 더보기 : 전부다 보이게

<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/head.jsp" %> <!-- 마이페이지(회원수정, 내가 쓴 글 모아보기?) --> <style> .h1 { /* 게시판이름 */ padding-bottom:15px; font-size:30px; font-weight:bolder; color: #FC9345; } span { display:inline-block; font-size:18px; font-weight: bold; align:center; } .join_up { font-size:18px; font-weight: bold; align:center; color:black; } .profile { align:left; font-size:16px; height:50px; } .pro { border:3px dashed #9A9A9A; border-radius: 100px; padding:20px; width:80px; height:80px; } .tb_border{ border: 1px solid; border-collapse: collapse; } </style> <% request.setCharacterEncoding("utf-8"); /* 한글 적혔을 때 안깨지게 */ String sql="select * from member where memberid='"+session_id+"' "; // db 아이디 = 입력한 아이디 Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); //선언 String memberid=""; while(rs.next()) { // 칼럼명 반복 memberid = rs.getString("memberid"); } %> <input type="hidden" name="id" value="<%=memberid%>"> <!-- 상단바(게시판이름 & 게시판 검색창) --> <table width=100% border=0> <tr><td height=30></td></tr> <tr> <td><a href="/member/mypage.jsp" class="h1">MyPage</a></td> </tr> <tr> <td ><hr></td> </tr> <tr> <td height=20></td> </tr> <tr><td style="font-size:20px;font-weight: bold;color:#FC9345;">내가 쓴 글</td></tr> <tr> <td height=10></td> </tr> </table> <table border=1 class="tb_border" style="border-collapse: collapse;" valign=top> <tr> <td width=100 align=center><font size=4><b>게시글</b></font></td> <td width=250 align=center><font size=4><b>제목</b></font></td> <td width=450 align=center><font size=4><b>내용</b></font></td> <td width=100 align=center><font size=4><b>작성자</b></font></td> <td width=100 align=center><font size=4><b>작성일</b></font></td> </tr> <tr> <td colspan="5"> <% String[] table_name = {"notice","gallery","free","qna"}; // 게시판 마다 부르기 위해 배열 사용(code 변수 대신 사용 할 것!) for(int i=0; i<table_name.length; i++){ String sql_zip = "select * from "+table_name[i]+" where id = '"+session_id+"' limit 0,20"; // 작성자 id = 로그인되어있는 id Connection con_zip = DriverManager.getConnection(url, user, password); Statement stmt_zip = con_zip.createStatement(); ResultSet rs_zip = stmt_zip.executeQuery(sql_zip); //bbs 폴더 변수 처리 String bbs_name = "bbs"; if(table_name[i].equals("gallery")){ bbs_name = "bbs2"; }else if(table_name[i].equals("free")){ bbs_name = "bbs3"; }else if(table_name[i].equals("qna")){ bbs_name = "bbs4"; } while(rs_zip.next()) { int uid = rs_zip.getInt("uid"); String gongji = rs_zip.getString("gongji"); String subject = rs_zip.getString("subject"); String comment = rs_zip.getString("comment"); String id = rs_zip.getString("id"); String name = rs_zip.getString("name"); String signdate = rs_zip.getString("signdate").substring(0,10); if(subject.length() >= 15) { subject = subject.substring(0,15) + "..."; } if(comment.length() >= 30) { comment = comment.substring(0,30) + "..."; } %> <table border=0 width=100% > <tr> <td width=100><%=table_name[i]%>:<%=uid %></td> <td width=250 ><a href="/<%=bbs_name %>/view.jsp?code=<%=table_name[i]%>&uid=<%=uid%>"><%=subject %></a></td> <td width=450 ><a href="/<%=bbs_name %>/view.jsp?code=<%=table_name[i]%>&uid=<%=uid%>"><%=comment %></a></td> <td width=100 align=center><%=name %></td> <td width=100 align=right><%=signdate %></td> </tr> </table> <% } rs_zip.close(); stmt_zip.close(); con_zip.close(); } %> </td> </tr> </table> <table> <tr><td height=20></td></tr> </table>
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/include/head.jsp" %> <!-- 마이페이지(회원수정, 내가 쓴 글 모아보기?) --> <style> .h1 { /* 게시판이름 */ padding-bottom:15px; font-size:30px; font-weight:bolder; color: #FC9345; } span { display:inline-block; font-size:18px; font-weight: bold; align:center; } .join_up { font-size:18px; font-weight: bold; align:center; color:black; } .profile { align:left; font-size:16px; height:50px; } .pro { border:3px dashed #9A9A9A; border-radius: 100px; padding:20px; width:80px; height:80px; } .tb_border{ border: 1px solid; border-collapse: collapse; } </style> <% request.setCharacterEncoding("utf-8"); /* 한글 적혔을 때 안깨지게 */ String sql="select * from member where memberid='"+session_id+"' "; // db 아이디 = 입력한 아이디 Connection con = DriverManager.getConnection(url, user, password); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); //선언 String memberid=""; while(rs.next()) { // 칼럼명 반복 memberid = rs.getString("memberid"); } %> <input type="hidden" name="id" value="<%=memberid%>"> <!-- 상단바(게시판이름 & 게시판 검색창) --> <table width=100% border=0> <tr><td height=30></td></tr> <tr> <td><a href="/member/mypage.jsp" class="h1">MyPage</a></td> </tr> <tr> <td ><hr></td> </tr> <tr> <td height=20></td> </tr> <tr><td style="font-size:20px;font-weight: bold;color:#FC9345;">내가 쓴 댓글</td></tr> <tr> <td height=10></td> </tr> </table> <table border=1 class="tb_border" style="border-collapse: collapse;" valign=top> <tr> <td width=100 align=center><font size=4><b>No</b></font></td> <td width=450 align=center><font size=4><b>내용</b></font></td> <td width=100 align=center><font size=4><b>작성자</b></font></td> <td width=100 align=center><font size=4><b>작성일</b></font></td> </tr> <tr> <td colspan="5"> <% String sql_com_zip = "select * from comment where com_id = '"+session_id+"'"; // 작성자 id = 로그인되어있는 id Connection con_com_zip = DriverManager.getConnection(url, user, password); Statement stmt_com_zip = con_com_zip.createStatement(); ResultSet rs_com_zip = stmt_com_zip.executeQuery(sql_com_zip); while(rs_com_zip.next()) { int com_uid = rs_com_zip.getInt("com_uid"); String com_table = rs_com_zip.getString("com_table"); String com_comment = rs_com_zip.getString("com_comment"); String com_id = rs_com_zip.getString("com_id"); String com_name = rs_com_zip.getString("com_name"); String com_date = rs_com_zip.getString("com_date").substring(0,10); if(com_comment.length() >= 15) { com_comment = com_comment.substring(0,15) + "..."; } //bbs 폴더 변수 처리 String bbs_name = "bbs"; if(com_table.equals("gallery")){ bbs_name = "bbs2"; }else if(com_table.equals("free")){ bbs_name = "bbs3"; }else if(com_table.equals("qna")){ bbs_name = "bbs4"; } %> <table border=0 width=100%> <tr> <td width=100><%=com_table%>: <%=com_uid %></td> <td width=250 ><a href="/<%=bbs_name%>/view.jsp?code=<%=com_table%>&uid=<%=com_uid%>"><%=com_comment %></a></td> <td width=100 align=center><%=com_name %></td> <td width=100 align=right><%=com_date %></td> </tr> </table> <% } rs_com_zip.close(); stmt_com_zip.close(); con_com_zip.close(); %> </td> </tr> </table> <table> <tr><td height=20></td></tr> </table>

 

'JAVA > jsp' 카테고리의 다른 글

23.02.22_jsp1 총정리  (0) 2023.02.22
댓글 count 구현  (0) 2023.02.16
카테고리별로 나누기(페이지이동X)  (0) 2023.02.13
비밀번호 일치 유무 알려주기  (0) 2023.02.13
프로젝트1  (0) 2023.02.01
profile

데일리로그C:

@망밍

포스팅이 도움됐다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!