테스트 사이트 - 개발 중인 베타 버전입니다

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

메너 2년 전 조회 1,879

안녕하세요.

 

글 동냥으로 아래와 같은 코드로 게시판의 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개

채택된 답변
+20 포인트
2년 전
$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개

메너
2년 전
휴일 아침에 댓글 주셔서 감사합니다.. 덕분에 1번의 질문은 해결하였습니다...
메너
2년 전
게시글을 읽었는데도 그대로 전체 게시글 수가 출력이 되어 2번은 해결이 안 됩니다..그래도 너무 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

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개

메너
2년 전
안녕하세요..댓글 감사합니다. 말씀하시는 내용은 공감하고 있는데요...
수학적으로 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개

메너
2년 전
웹메이킹 님.. 너무 감사합니다. 친절한 설명 많은 도움이 되었습니다.
제가 질문 올리면서 의도한바를 설명하지 못한 것 같습니다. wr_hit = 0; 의 data를 참고하려고 했는데요.. 정확한 의도는 로인인한 회원이 읽지 않은 상태의 자신의 모니터에 나타나는 유저의 개수가 필요한 것입니다. 그런데 다른 회원이 읽는 순간 wr_hit >= 1 이 되니까 출력이 되지 않았던 것 같습니다...
웹메이킹
2년 전
[code]
<?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]
위와 같이 해 볼 수 있을 것 같습니다. 다만, 실시간으로 알림장이 읽히는 경우에는 정확한 결과를 얻지 못할 수 있습니다. 참고해 보세요
메너
2년 전
신경써주셔서 감사합니다.
적용해 보니 결과값이 아얘 없어요.... 포기 해야 겠습니다. ^^ 그래도 덕분에 많이 배웠습니다.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

메너
2년 전
<?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 이 되니까 출력이 되지 않았던 것 같습니다...

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

댓글을 작성하려면 로그인이 필요합니다.

답변에 대한 댓글 1개

메너
2년 전
들레아빠님.. 관심 주셔서 고맙겠습니다. 참고가 많이 되었습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인