다음 프로젝트 때는 배열 사용하지말고 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 |