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

월별 데이타 통계 추출 질문입니다. 채택완료

카산 2년 전 조회 4,017

목적은 블로그에서 사이드에 아래와 같이 월별로 홈페이지 전체에서  메뉴처럼 데이터 추출된 것을 보여주고 클릭하면 해당 데이타가리스트로 출력되는 형태를 원하고 있습니다. 설치된 게시판은 그누보드 입니다

  1. https://getbootstrap.com/docs/5.3/examples/blog/#">March 2021
  2. https://getbootstrap.com/docs/5.3/examples/blog/#">February 2021
  3. https://getbootstrap.com/docs/5.3/examples/blog/#">January 2021
  4. https://getbootstrap.com/docs/5.3/examples/blog/#">December 2020
  5. https://getbootstrap.com/docs/5.3/examples/blog/#">November 2020
  6. https://getbootstrap.com/docs/5.3/examples/blog/#">October 2020
  7. https://getbootstrap.com/docs/5.3/examples/blog/#">September 2020
  8. https://getbootstrap.com/docs/5.3/examples/blog/#">August 2020
  9. https://getbootstrap.com/docs/5.3/examples/blog/#">July 2020
  10. https://getbootstrap.com/docs/5.3/examples/blog/#">June 2020
  11. https://getbootstrap.com/docs/5.3/examples/blog/#">May 2020
  12. https://getbootstrap.com/docs/5.3/examples/blog/#">April 2020

아래와 같이 하면 된다고 하길래 free 보드에서만 1월에 해당하는 것을 뽑아 보려고 하니 아무것도 안나오네요..  물론 원하는 것은 게시판 전체이지만요~~

</p>

<p>$sql = "SELECT DATEPART(MONTH, 01), COUNT(*)

FROM free

GROUP BY DATEPART(MONTH, 01)";</p>

<p>

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

답변 6개

채택된 답변
+20 포인트
웅푸
2년 전

출력하는 코드가 없기 때문에 아무것도 표시되지 않은건 당연하죠 ;;

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

답변에 대한 댓글 2개

피라미드
2년 전
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($result)) { echo $row[0] . "월 등록된글 : " . $row[1] . "<br>"; }

요래하면 월 게시 등록된 글을 가져 올 수 있습니다.
피라미드
2년 전
전부다 가져 오고싶다 ? 그렇다면 다음처럼 ㅎㅎ;

$sql = "SELECT COUNT(*) FROM free";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
echo "몽땅글을가져오세요 : " . $row[0];

참고로 COUNT 함수는 테이블의 레코드 수를 반환하는 함수에요
그럼 수고하세요 화이팅~!^^

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

카산
2년 전

햐~~균이님 코드를 보니 대단하십니다~~

그런데 위에 것 실행하면 2023-07==>76 요런 식으로  출력되네요~~

즉, 7월에 등록된 모든 글의 개수를 카운트하는 것이네요~~ 요기까지 감사합니다..

 

나머진 욕심입니다.. ~~ 위에 것까지만 해두 너무 너무 감사합니다

2023-07==>76 에 링크를 걸어서 7월에 등록된 글이 게시판처럼 리스트로 죽 출력되게 하고 싶었거든요~~

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

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

2년 전

답변으로 해결 될 것 같아 보이지 않는데 채택을 해놓은 것은 해결이 되었다는 것인가요?

어쨌던 아래처럼 하세요

 

 $qq=sql_query("select substr(wr_datetime, 1, 7) as yymm, count(*) as cnt from g5_write_free group by substr(wr_datetime,1,7) order by yymm");
  while($row=sql_fetch_array($qq)) $list=$row;

print_r($list);

 

전체 게시판 대상으로하려면 index.php에서 latest함수를 사용하는 코드에 전체 게시판을 하나씩

찾아서 사용하는 코드가 있으니 이것을 이용해서 위 코드를 latest 함수 자리에 넣어서

년월별로 누적합계가 되도록 만드세요

 

 

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

답변에 대한 댓글 3개

카산
2년 전
해결은 안되었는데 해결할 수 있는 능력은 안되어서 채택으로 해놓았습니다. 그누가 채택을 안하면 다른 질문을 할 수 없도록 되어 있어서요..~~
답변 감사합니다.

위처럼하니 free게시판에서 Array ( [yymm] => 2023-07 [cnt] => 11 ) 같이 11개의 게시글이 카운트 되긴하네요~~~


원하는 것은 전체 게시판에 대한 것이고 클릭하면 해당월에 게시된 글이 모두 리스트로 출력되는 것이었지만 너무 복잡하여 더이상 질문올리기가 미안하기두 해서~~채택으로 해놓기두 했구여~~

위에 답변을 더 많이 연구해 보도록 하겠습니다
피라미드
2년 전
맞아요 2회 제한요 ^^
균이
2년 전
설명대로 만들기 어려운가요? 코드를 만들어드리죠

$dayArr =array();
$result =sql_query(" select bo_table from `{$g5['board_table']}` ");
for ($i=0; $row=sql_fetch_array($result); $i++) {
$table = $g5['write_prefix'].$row['bo_table'];
$qq=sql_query("select substr(wr_datetime, 1, 7) as yymm, count(*) as cnt from $table where wr_is_comment=0 group by substr(wr_datetime,1,7) ");
while($row2=sql_fetch_array($qq)){
$ym = $row2['yymm']; if(!isset($list[$ym])) $list[$ym] =0;
if(!in_array($ym, $dayArr) ) $dayArr[] =$ym;
$list[$ym] +=$row2['cnt'];
}
}
//<------------------------댓글도 포함하려면 where절 삭제


//----------------------필요한 곳에서 날짜순 출력하기
sort($dayArr);
for($i=0; $i< count($dayArr); $i++){
$ym = $dayArr[$i];
echo '<br>'.$ym.'==>'.$list[$ym];
}

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

카산
2년 전

감사합니다. 근데 페이지오류가 뜨고 아무것도 안나오네요~~

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

답변에 대한 댓글 1개

피라미드
2년 전
mysqli_fetch_array()를 사용하여 모든 것을 .........가져와라 그리고 row[]배열처리 쭉쭉~~ 뭐이런식.

$result = mysqli_query($conn, $sql);
$rows = array();
while($row = mysqli_fetch_array($result)) {
$rows[] = $row;
}

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

카산
2년 전

파라미드님 답변은 감사한데요~~둘다 페이지가 홈페이지 자체 위 글이훈론 첨부한 것처럼 출력이 안되네요~~

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

답변에 대한 댓글 2개

피라미드
2년 전
어떤식으로보고싶은데요 한줄 리스트로 결과를요 ?
일단 배열을 해주셔야합니다.
피라미드
2년 전
이게 도움될련지 몰르겠으나 일단은 모든 행을 가져와서 배열에 저장한다고한다면?
즉, 데이터를 목록 형식으로 표시하려면 루프를 사용하여 배열을하고 반복하고 각 행을 표시한다 뭐이런거죠---;;
그럼 화이팅~!
$rowsforeach

foreach($rows as $row) {
echo "<li>" . $row['column_name'] . "</li>";
}

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

웅푸
2년 전

디비쿼리문에서 DATEPART 함수는 MS에서 사용하는 함수입니다

MySQL에서는 MONTH 함수를 사용하시면 됩니다. ^

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

답변에 대한 댓글 3개

피라미드
2년 전
SELECT MONTH(date), COUNT(*) FROM free WHERE MONTH(date) = 1 GROUP BY MONTH(date); 요렇게 하면 1월만 추출^^
카산
2년 전
피라미드 님 감사합니다~~그런데 아래와 같이 index.php 에 삽입하고 새로고침 했는데 아무것도 표시가 안되네요

<?php

$sql = "SELECT MONTH(date), COUNT(*) FROM free WHERE MONTH(date) = 1 GROUP BY MONTH(date)";

?>
카산
2년 전
mysqli_query 쓰면 오류가 나고 sql_query 쓰면 오류는 없는데 값이 출력이 안되네요~

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

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

로그인