댓글은 뺀 순수한 게시 글의 개수를 구하고 싶습니다 채택완료
안녕하세요.
글 동냥으로 아래와 같은 코드로 게시판의 24시간 이전의 게시 글을 추출하는데요.. 댓글까지 포함해서 표시가 됩니다.
</strong></p>
<p><b><?php // 알림장 갯수 추출</b></p>
<p><b>$notice = sql_fetch(" SELECT COUNT(1) cnt FROM g5_write_notice WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR);");</b></p>
<p><b>?></b></p>
<p><strong>
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;");
해주시면 될겁니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
게시물을 등록하면 등록 후 뷰페이지로 이동 하므로 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");
답변에 대한 댓글 1개
수학적으로 wr_hit < wr_hit + 1 의 형태가 되야해서요..wr_hit 가 로그인 한 회원이 열람한 숫자이니 다음 열람할 회원은 미래의 wr_hit < wr_hit + 1 이 상태가 되어야 열람이 안 된 것이 되니..뭔가 이상하죠??ㅎ wr_hit + 1 을 어떻게 처리 하는지를 모르겠어요..
댓글을 작성하려면 로그인이 필요합니다.
다음과 같은 방법도 있으니 참고해 보세요
</p>
<p><?php</p>
<p>1번.
// 알림장 갯수 추출
$notice = sql_fetch("SELECT COUNT(*) AS cnt FROM g5_write WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 24 HOUR);");</p>
<p> </p>
<p>2번.</p>
<p>// 읽지 않은 게시글의 개수 추출
$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이면 읽은 게시글입니다.
답변에 대한 댓글 3개
제가 질문 올리면서 의도한바를 설명하지 못한 것 같습니다. 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);
?>
[/code]
위와 같이 해 볼 수 있을 것 같습니다. 다만, 실시간으로 알림장이 읽히는 경우에는 정확한 결과를 얻지 못할 수 있습니다. 참고해 보세요
적용해 보니 결과값이 아얘 없어요.... 포기 해야 겠습니다. ^^ 그래도 덕분에 많이 배웠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
$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 이 되니까 출력이 되지 않았던 것 같습니다...
정확한 의도는 로인인한 회원이 읽지 않은 상태의 자신의 모니터에 나타나는 개수가 필요한 것입니다.. 아는 게 없다 보니 질문도 정확하게 못하게 되네요..ㅜㅜ
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인