댓글은 뺀 순수한 게시 글의 개수를 구하고 싶습니다

댓글은 뺀 순수한 게시 글의 개수를 구하고 싶습니다

QA

댓글은 뺀 순수한 게시 글의 개수를 구하고 싶습니다

본문

안녕하세요.

 

글 동냥으로 아래와 같은 코드로 게시판의 24시간 이전의 게시 글을 추출하는데요.. 댓글까지 포함해서 표시가 됩니다.


<?php // 알림장 갯수 추출
$notice = sql_fetch(" SELECT COUNT(1) cnt FROM g5_write_notice WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR);");
?>

 

1.댓글은 뺀 순수한 게시 글의 개수를 구하고 싶습니다.

2.여기서 더 나아가 읽지 않은 게시 글의 개수를 구한다면 어떤 코드를 추가해야 할까요??

 

고수님들의 도움 청해 봅니다.

 

감사합니다.

이 질문에 댓글 쓰기 :

답변 5

$notice = sql_fetch(" SELECT COUNT(1) cnt FROM g5_write_notice WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR) and wr_is_comment = 0;");
해주시면 될겁니다.

읽지 않은건 wr_hit 가 0인걸 찾으시면 될거 같습니다.

<?php // 알림장 개수 추출
$notice = sql_fetch(" SELECT COUNT(1) cnt FROM g5_write_notice WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR) and wr_is_comment = 0 and wr_hit=0");
?>

이렇게 적용했는데 안 되네요..다른 회원이 읽는 순간 wr_hit >= 1 이 되니까 출력이 되지 않았던 것 같습니다...

정확한 의도는 로인인한 회원이 읽지 않은 상태의 자신의 모니터에 나타나는 개수가 필요한 것입니다.. 아는 게 없다 보니 질문도 정확하게 못하게 되네요..ㅜㅜ

다음과 같은 방법도 있으니 참고해 보세요


<?php
1번.
// 알림장 갯수 추출
$notice = sql_fetch("SELECT COUNT(*) AS cnt FROM g5_write WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR);");
 
2번.
// 읽지 않은 게시글의 개수 추출
$unread = sql_fetch("SELECT COUNT(*) AS cnt FROM g5_write WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR) AND wr_notice = 0;");
?>

 

1. 댓글을 제외한 순수한 게시글의 개수를 구하기 위해서는 g5_write_notice 테이블 대신 g5_write 테이블을 사용해야 할것으로 생각합니다.  g5_write 테이블은 댓글을 포함하지 않는 게시글만을 저장하고 있습니다:

 

2. 읽지 않은 게시글의 개수를 구하려면 알림장이 읽힌 여부를 확인해야 합니다.  가장 간단한 방법은 g5_write 테이블의 wr_notice 필드를 사용하는 것입니다.  wr_notice 필드가 0이면 읽지 않은 게시글이고, 1이면 읽은 게시글입니다.

웹메이킹 님.. 너무 감사합니다. 친절한 설명 많은 도움이 되었습니다.
제가 질문 올리면서 의도한바를 설명하지 못한 것 같습니다. wr_hit = 0; 의 data를 참고하려고 했는데요.. 정확한 의도는 로인인한 회원이 읽지 않은 상태의 자신의 모니터에 나타나는 유저의 개수가 필요한 것입니다. 그런데 다른 회원이 읽는 순간 wr_hit >= 1 이 되니까 출력이 되지 않았던 것 같습니다...


<?php
// 알림장 개수 추출
$sql = "SELECT COUNT(1) AS cnt FROM {$g5['write_notice_table']} 
        WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR) 
        AND wr_is_comment = 0 AND wr_hit = 0 
        AND wr_mb_id = '{$member['mb_id']}'";
$notice = sql_fetch($sql);
?>

위와 같이 해 볼 수 있을 것 같습니다. 다만, 실시간으로 알림장이 읽히는 경우에는 정확한 결과를 얻지 못할 수 있습니다. 참고해 보세요

게시물을 등록하면 등록 후 뷰페이지로 이동 하므로  wr_hit = 1로 기본 설정 됩니다

따라서 아래처럼

$notice = sql_fetch(" SELECT COUNT(*) as cnt FROM g5_write_notice WHERE wr_is_comment=0 and wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR) and wr_hit<2");

 

 

 

안녕하세요..댓글 감사합니다. 말씀하시는 내용은 공감하고 있는데요...
수학적으로 wr_hit < wr_hit + 1 의 형태가 되야해서요..wr_hit 가 로그인 한 회원이 열람한 숫자이니 다음 열람할 회원은 미래의 wr_hit < wr_hit + 1 이 상태가 되어야 열람이 안 된 것이 되니..뭔가 이상하죠??ㅎ wr_hit + 1 을 어떻게 처리 하는지를 모르겠어요..

답변을 작성하시기 전에 로그인 해주세요.
전체 81
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT