8. 조회수 뻘짓
ORA-00937: 단일 그룹의 그룹 함수가 아닙니다
00937. 00000 - "not a single-group group function"
> 그룹함수 : 그룹 당 하나의 결과를 반환하는 함수.
count(*) : null 값 포함, count(column) : null 값 제외
select distinct(q.qna_num), (select count(*) from qna_reply where qna_num = q.qna_num)
from qna q, qna_reply qr order by qna_num
조금 쉽게 생각하려고 계속 했더니 답이 살짝 보였다. 이걸 qnaVO에 컬럼을 저장 할지 아니면 다른 리스트로 만들어서 출력 할지 고민해봐야 되겠음. 어차피 list로 뱉을 때 hashmap으로 하고 있기 때문에 왠만하면 게시판 리스트 출력 할 때 같이 출력하고 싶다.
좀 오래 걸렸는데 살짝 짜릿하다.
게시판 리스트를 불러오는 sql문을 변경했다.
<select id="getQnaList" parameterType="java.util.HashMap" resultMap="hashmapVO">
select * from (select rownum as rnum, s.* from (
select q.*, m.member_name FROM (select distinct(q.qna_num), q.member_id, q.qna_type, q.order_num, q.qna_title, q.qna_content, q.qna_date,
q.qna_file, q.qna_check, q.qna_scr, q.qna_pass, (select count(*) from qna_reply where qna_num = q.qna_num) as reply_cnt
from qna q, qna_reply qr order by qna_num) q, member m where q.member_id = m.member_id ORDER BY qna_num desc) s)
where rnum between ${startrow} and ${endrow}
</select>
처음에 계속 reply_cnt가 null이 떠서 뭐지 했는데 당연히 hashmapVO로 받고 있었으니까 위에 컬럼명 추가했어야 했는데 추가하지 않고 계속 호출하고 있었다. 어리석음.
이제는 예외처리 몇개만 하고 그만 해야되겠음.
💡 예외처리 설정
당연한 것들이지만 예외 처리 못해둔 것들을 더 완성도 있게 수정한다.
1) 공개 설정하고 등록 했을 때 비밀번호 입력하지 않아도 됨
}else if(document.getElementById('qna_pass').value==""){
var qna_src = $(":input:radio[name=qna_scr]:checked").val();
if(qna_src == '비공개') {
Swal.fire("","작성하신 글의 비밀번호를 설정해 주세요 (숫자 최대 4자)","info");
document.getElementById('qna_pass').focus();
return false;
}
}
2) 답글이 등록 되어 있으면 원글 수정 및 삭제 불가 👍
3) 글쓴이 아니면 삭제 불가 > 수정은 처리 해둠 👍
📌 To Do List
[x] 리스트, 페이징
[x] 글 작성, DB 저장
[x] 글 상세보기
[x] 글 수정, 삭제
[x] 비공개, 공개 설정
[x] 댓글, 대댓글
[x] 예외처리 설정
게시판은 이 정도로 완성
💡 관리자 페이지 메인 코드 정리 및 보완
지금 상태.
우선 큰 문제
1. 왼쪽 메뉴
2. 오늘의 일정 (fullCalender.js)
3. 차트 로딩 문제
4. 진입
⭐ 왼쪽 메뉴
이게 pc 화면에서는 괜찮았는데 말이죠(구구절절)
내가 짠 코드가 아니라서 왜 그런지 모르겠는데 아마 height가 100%으로 되어있고 메뉴가 고정적으로 되어있나보다. 스크롤을 내리면 같이 내려가거나 해야 될 것 같은데 고정되어 있어가고 하단이 나오지 않음.
⭐ 오늘의 일정
발표 전 날에 진짜 fullCalender 사용 법 한번 읽어보고 데이터 그냥 때려 넣어놨음. 추가, 삭제 버튼을 넣어두면 좋을 것 같음.
⭐ 차트 로딩 문제
우선 지금 데이터가 제대로 되지 않아서 차트가 안나오는 문제 + 차트가 메인에 3개가 있어서 로딩이 길어지는 문제.
애초에 차트가 이렇게 많이 필요한가?라는 본질 적안 생각 + 메뉴가 따로 빼져 있는데 코드를 2번 쓸 필요가 있나? 라는 생각
일단 이렇게 크게 3개로 나눠서 작업 진행 하도록 하겠다.
💡 왼쪽 메뉴
(왼) 전체 화면
(오) 차트 눌렀을 때 화면
노트북 화면으로 봤을 때 이제 딱 이렇게 보인다. 확실히 이렇게 메뉴를 모으니까 보기 좋아 보인다. 스크롤 내리면 왼쪽 메뉴는 고정되어 있는 채로 움직임.
'개발자 > 비트캠프' 카테고리의 다른 글
프로젝트 코드 변경 사항 및 메모 #10 - fullCalender.js list plugin 사용 1탄 (0) | 2020.05.27 |
---|---|
프로젝트 코드 변경 사항 및 메모 #9 - 관리자 메인 차트 코드 정리 (0) | 2020.05.14 |
프로젝트 코드 변경 사항 및 메모 #7 (0) | 2020.05.13 |
프로젝트 코드 변경 사항 및 메모 #6 (0) | 2020.05.12 |
프로젝트 코드 변경 사항 및 메모 #5 (0) | 2020.05.07 |
댓글