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

관리자페이지 문의드립니다. 채택완료

이엠아이디 9개월 전 조회 1,831

상단에 이렇게

만들어져 있는 문의관리 페이지에서

기간별로 볼수있게 만들고 싶은데

게시판으로 만들어져 있거든요

항상 날짜를 기준으로 해서

 

오늘 : ??개

1주일 : ??개
1개월 : ??개

 

이렇게 표시를 하고 싶습니다

(누르면 해당 건만 리스트 나오게)

 

http://sir.kr/data/editor/2501/1039617957_1737458641.6773.png" width="100%" />

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

답변 4개

채택된 답변
+20 포인트
9개월 전

커스텀으로 만든 '문의관리' 페이지인 것으로 보입니다.

참고용 소스입니다. (적용시에는 실제 페이지에 맞게 응용/처리 필요)

</p>

<p><?php

// 상단에 통계 표시 부분

$today_count = sql_fetch(" SELECT COUNT(*) AS cnt FROM {$write_table} WHERE wr_datetime >= '".date('Y-m-d 00:00:00')."' AND wr_datetime <= '".date('Y-m-d 23:59:59')."' ");

$week_count = sql_fetch(" SELECT COUNT(*) AS cnt FROM {$write_table} WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 7 DAY) ");

$month_count = sql_fetch(" SELECT COUNT(*) AS cnt FROM {$write_table} WHERE wr_datetime >= DATE_SUB(NOW(), INTERVAL 1 MONTH) ");

?></p>

<p><div class="stat-container">

   <a href="?period=today" class="stat-box">

       오늘 : <?php echo number_format($today_count['cnt']); ?>개

   </a>

   <a href="?period=week" class="stat-box">

       1주일 : <?php echo number_format($week_count['cnt']); ?>개

   </a>

   <a href="?period=month" class="stat-box">

       1개월 : <?php echo number_format($month_count['cnt']); ?>개

   </a>

</div></p>

<p><?php

// 리스트 쿼리 수정 부분 

$period = $_GET['period'];

$where = "";</p>

<p>if($period) {

   switch($period) {

       case 'today':

           $where = " AND wr_datetime >= '".date('Y-m-d 00:00:00')."' AND wr_datetime <= '".date('Y-m-d 23:59:59')."' ";

           break;

       case 'week':

           $where = " AND wr_datetime >= DATE_SUB(NOW(), INTERVAL 7 DAY) ";

           break;

       case 'month':

           $where = " AND wr_datetime >= DATE_SUB(NOW(), INTERVAL 1 MONTH) ";

           break;

   }

}</p>

<p>$sql = " SELECT * FROM {$write_table} WHERE 1=1 {$where} ORDER BY wr_id DESC ";

?></p>

<p>

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

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

glitter0gim
9개월 전

'문의 관리' 페이지의 상단에

"오늘", "1주일", "1개월"로 구분된 데이터 통계와 필터링 기능을 추가.

각 기간의 통계를 클릭하면 해당 기간에 해당하는 데이터만 리스트로 출력되게 함.

 

데이터는 PHP와 SQL로 처리하며,

HTML과 JavaScript를 사용하여 사용자 인터페이스를 동적으로 구성함.

상담신청 폼 구조를 참고하여 디자인 및 동작 방식을 통합함.

 

*HTML 및 JavaScript (통계 표시 및 필터링 UI 구성)

</p>

<p><div class="inquiry-stat-container">

    <div class="stat-top flex">

        <div class="stat-box">

            <a href="?period=today">오늘: <span id="today-count">0</span>개</a>

        </div>

        <div class="stat-box">

            <a href="?period=week">1주일: <span id="week-count">0</span>개</a>

        </div>

        <div class="stat-box">

            <a href="?period=month">1개월: <span id="month-count">0</span>개</a>

        </div>

    </div>

</div></p>

<p><script>

    // 통계 데이터를 동적으로 로드하는 스크립트

    document.addEventListener("DOMContentLoaded", function () {

        fetch('/bbs/get_statistics.php')

            .then(response => response.json())

            .then(data => {

                document.getElementById('today-count').textContent = data.today;

                document.getElementById('week-count').textContent = data.week;

                document.getElementById('month-count').textContent = data.month;

            });

    });

</script></p>

<p>

 

*서버 측 PHP 코드 (기간별 통계 데이터 처리)

- get_statistics.php를 통해 각 기간에 대한 데이터를 계산

</p>

<p><?php

header('Content-Type: application/json');</p>

<p>// 데이터베이스 연결

include_once('db_connection.php');</p>

<p>// 오늘, 1주일, 1개월 데이터 계산

$today_count = sql_fetch("SELECT COUNT(*) AS cnt FROM inquiry_table WHERE created_at >= CURDATE()");

$week_count = sql_fetch("SELECT COUNT(*) AS cnt FROM inquiry_table WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)");

$month_count = sql_fetch("SELECT COUNT(*) AS cnt FROM inquiry_table WHERE created_at >= DATE_SUB(NOW(), INTERVAL 1 MONTH)");</p>

<p>// JSON으로 반환

echo json_encode([

    'today' => $today_count['cnt'],

    'week' => $week_count['cnt'],

    'month' => $month_count['cnt']

]);

?></p>

<p>

 

*PHP로 필터링된 리스트 출력

- inquiry_list.php 파일에서 $_GET['period'] 값을 기준으로 필터링 조건을 설정

</p>

<p><?php

$period = $_GET['period'] ?? 'all'; // 기본값 설정

$where = "";</p>

<p>switch ($period) {

    case 'today':

        $where = "created_at >= CURDATE()";

        break;

    case 'week':

        $where = "created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)";

        break;

    case 'month':

        $where = "created_at >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";

        break;

}</p>

<p>$sql = "SELECT * FROM inquiry_table WHERE $where ORDER BY created_at DESC";

$result = mysqli_query($conn, $sql);

?></p>

<p><table class="table">

    <thead>

        <tr>

            <th>번호</th>

            <th>이름</th>

            <th>연락처</th>

            <th>신청일</th>

        </tr>

    </thead>

    <tbody>

        <?php while ($row = mysqli_fetch_assoc($result)): ?>

        <tr>

            <td><?= $row['id'] ?></td>

           </p>

<p>
</p>

<p>            <td><?= htmlspecialchars($row['wr_name']) ?></td>

            <td><?= htmlspecialchars($row['wr_subject']) ?></td>

            <td><?= htmlspecialchars($row['created_at']) ?></td>

        </tr>

        <?php endwhile; ?>

    </tbody>

</table></p>

<p>

 

*CSS 스타일링

- 폼 구조를 고려해, 통계 UI와 리스트 디자인을 조화롭게 구성

</p>

<p><style>

    .inquiry-stat-container {

        padding: 10px;

        background-color: #f9f9f9;

        border: 1px solid #ddd;

    }

    .stat-top {

        display: flex;

        justify-content: space-around;

    }

    .stat-box a {

        text-decoration: none;

        color: #007bff;

        font-size: 16px;

        font-weight: bold;

    }

    .stat-box a:hover {

        text-decoration: underline;

    }

    .table {

        width: 100%;

        border-collapse: collapse;

        margin-top: 20px;

    }

    .table th, .table td {

        border: 1px solid #ddd;

        padding: 8px;

        text-align: left;

    }

    .table th {

        background-color: #f2f2f2;

    }

</style></p>

<p>

★ 위의 방안은 상담신청 폼의 이미지(첨부된)와 AI를 활용하여

  상단 통계 표시와 기간별 필터링 기능을 통합한 예시입니다.

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

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

s
sinbi Expert
9개월 전

sql where 구문에 관해서 공부해 보세요.

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

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

R
9개월 전

"신청날짜" 기준으로 select 하는 query 를 만드세요.

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

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

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

로그인