출석부 통계....

출석부 통계....

QA

출석부 통계....

본문

3025377459_1687431104.5428.jpg

 

이런 항목으로 통계를 내고 싶은데 어찌해야 할 까요...

이걸 매달 회원님이 통계 내주시고 계시는데 많이 힘들어 하시네요.. ㅠ.ㅠ

이 질문에 댓글 쓰기 :

답변 3

아래의 내용을 참고를 해보세요

 

 

<?php
// 현재 날짜를 구합니다.
$currentDate = date('Y-m-d');

// 1년 전의 날짜를 계산합니다.
$oneYearAgo = date('Y-m-d', strtotime('-1 year'));

// 개근일수와 인원수를 저장할 변수를 초기화합니다.
$totalAttendanceDays = 0;
$totalMembers = 0;

// 회원 데이터를 가져오는 쿼리를 작성합니다. 적절한 쿼리를 사용해야 합니다.
$query = "SELECT * FROM members_table";

// 쿼리를 실행하여 회원 데이터를 가져옵니다. 적절한 데이터베이스 연결 및 실행 코드를 추가해야 합니다.
$result = mysqli_query($connection, $query);

// 결과를 순회하며 개근 현황을 계산합니다.
while ($row = mysqli_fetch_assoc($result)) {
    // 회원의 개근일수를 계산합니다.
    $attendanceDays = getAttendanceDays($row['join_date'], $oneYearAgo, $currentDate);
    
    // 개근일수가 365일 이상인 경우에만 통계에 포함합니다.
    if ($attendanceDays >= 365) {
        $totalAttendanceDays += $attendanceDays;
        $totalMembers++;
    }
}

// 개근 현황 통계를 출력합니다.
echo "총 개근 일수: " . $totalAttendanceDays . "일<br>";
echo "총 인원 수: " . $totalMembers . "명";

// 개근일수를 계산하는 함수입니다.
function getAttendanceDays($joinDate, $startDate, $endDate) {
    $start = strtotime($startDate);
    $end = strtotime($endDate);
    $join = strtotime($joinDate);
    
    // 회원 가입일과 기간의 시작일 중 더 늦은 날짜를 선택합니다.
    $start = max($start, $join);
    
    // 시작일과 종료일 사이의 일수를 계산합니다.
    $days = ($end - $start) / (60 * 60 * 24) + 1;
    
    return $days;
}
?>
 

 

 

저렇게 뽑으실수 있으면 내부에 개발자가 있으신거 아닌가요?

mysql 에서 group by 로 통계를 내시면 될듯 합니다.

다만 개근이라는 데이터를 만들으셔야 할듯 합니다.

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

회원로그인

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