ai 가 작성한 코드가 아무 반응이 없네요~~ 채택완료
어제 첨으로 ai가 코드 작성하는 것을 해보고 신기해서 이것 저것 ai에게 시켜보는데 기본 실력이 부족하여 별 도움을 얻지 못하고 있습니다.. 아래도 함 추출해보려고 ai에게 질문했더니 아래 코드를 index.php 적당한 위치에 삽입하라고 하는데 코드를 넣고 새로 고침해도 별 반응이 없네요
아래는 ai 작성한 조회수 최대인 게시글 추출하는 코드인데 오류 메세지도 없고 글도 추출 안되네요
Copy
<?php
// 조회수가 가장 높은 글 추출
$sql = " SELECT b.bo_table, b.bo_subject, wr.wr_id, wr.wr_subject, wr.wr_hit, wr.wr_datetime
FROM {$g5['board_table']} AS b
LEFT JOIN (
SELECT bo_table, wr_id, wr_subject, wr_hit, wr_datetime,
ROW_NUMBER() OVER (PARTITION BY bo_table ORDER BY wr_hit DESC) AS rn
FROM {$g5['write_prefix']}all
) AS wr ON b.bo_table = wr.bo_table
WHERE wr.rn = 1 AND b.bo_use_search = 1
ORDER BY wr.wr_hit DESC
LIMIT 1 ";
$result = sql_query($sql);
$row = sql_fetch_array($result);
if ($row) {
// 결과가 있을 경우 출력
$board_url = short_url_clean(G5_BBS_URL.'/board.php?bo_table='.$row['bo_table']);
$write_url = short_url_clean(G5_BBS_URL.'/board.php?bo_table='.$row['bo_table'].'&wr_id='.$row['wr_id']);
$datetime = substr($row['wr_datetime'], 2, 8);
?>
<div class="most-viewed-post">
<h3>가장 많이 본 글</h3>
<p>
<a href="<?php echo $write_url; ?>"><?php echo get_text(cut_str($row['wr_subject'], 40)); ?></a>
<span class="bo_name">[<a href="<?php echo $board_url; ?>"><?php echo $row['bo_subject']; ?></a>]</span>
<span class="hit">조회수: <?php echo number_format($row['wr_hit']); ?></span>
<span class="datetime"><?php echo $datetime; ?></span>
</p>
</div>
<?php
}
?>
답변 2개
채택된 답변
+20 포인트
마르스컴퍼니
1년 전
그누보드에서는 전체 게시판 테이블이 없습니다.
게시판마다 테이블이 별도입니다.
최신글 테이블에는 전체 게시판 데이터가 있긴 한데.. (전체 게시판 테이블 대용으로 활용 가능)
'조회수' 정보가 없습니다. (조회수가 필요한 경우에는 활용하기 어렵습니다.)
가장 근사치의 방법으로 다음의 코드를 생각해 볼 수 있습니다.
현재 기준, 그누보드를 가장 잘 이해하고 있는 AI 는 '클로드' ( https://claude.ai ) 입니다.
Copy
<?php
// 1달 전 날짜 계산
$one_month_ago = date('Y-m-d H:i:s', strtotime('-1 month'));
// 게시판 목록 가져오기
$board_list = sql_query("SELECT bo_table FROM {$g5['board_table']} WHERE bo_use_search = 1");
$posts = array();
// 각 게시판에서 조회수 높은 글 가져오기
while ($board = sql_fetch_array($board_list)) {
$bo_table = $board['bo_table'];
$sql = "SELECT wr_id, wr_subject, wr_hit, wr_datetime, '$bo_table' AS bo_table
FROM {$g5['write_prefix']}{$bo_table}
WHERE wr_is_comment = 0
AND wr_datetime > '$one_month_ago'
ORDER BY wr_hit DESC
LIMIT 100";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$posts[] = $row;
}
}
// 조회수 기준으로 정렬
usort($posts, function($a, $b) {
return $b['wr_hit'] - $a['wr_hit'];
});
// 상위 10개만 선택
$top_posts = array_slice($posts, 0, 10);
// 결과 출력
if (count($top_posts) > 0) {
?>
<div class="most-viewed-posts">
<h3>최근 1개월 조회수 TOP 10</h3>
<?php
foreach ($top_posts as $row) {
$bo_table = $row['bo_table'];
$board_url = get_pretty_url($bo_table);
$write_url = get_pretty_url($bo_table, $row['wr_id']);
$datetime = substr($row['wr_datetime'], 2, 8);
// 게시판 이름 가져오기
$board_info = sql_fetch("SELECT bo_subject FROM {$g5['board_table']} WHERE bo_table = '{$bo_table}'");
$bo_subject = $board_info['bo_subject'];
?>
<p>
<a href="<?php echo $write_url; ?>"><?php echo get_text(cut_str($row['wr_subject'], 40)); ?></a>
<span class="bo_name">[<a href="<?php echo $board_url; ?>"><?php echo $bo_subject; ?></a>]</span>
<span class="hit">조회수: <?php echo number_format($row['wr_hit']); ?></span>
<span class="datetime"><?php echo $datetime; ?></span>
</p>
<?php
}
?>
</div>
<?php
}
?>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
1년 전
두 분 모두 감사합니다~~ 채택은 한분만 할 수 있어서 한분만 했네요~~ 모두 잘 되고 있습니다
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인