답변 4개
커스텀으로 만든 '문의관리' 페이지인 것으로 보입니다.
참고용 소스입니다. (적용시에는 실제 페이지에 맞게 응용/처리 필요)
</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>
댓글을 작성하려면 로그인이 필요합니다.
'문의 관리' 페이지의 상단에
"오늘", "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를 활용하여
상단 통계 표시와 기간별 필터링 기능을 통합한 예시입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인