데일리로그C:
article thumbnail

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


 

1. 작성한 글

<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. 내가 작성한 댓글 구현  

<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개 가져오는 걸로 됨

<%
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 처리

<%
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. 더보기 : 전부다 보이게

<%@ 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>
<%@ 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:

@망밍

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

profile on loading

Loading...