ai 가 작성한 코드가 아무 반응이 없네요~~
본문
어제 첨으로 ai가 코드 작성하는 것을 해보고 신기해서 이것 저것 ai에게 시켜보는데 기본 실력이 부족하여 별 도움을 얻지 못하고 있습니다.. 아래도 함 추출해보려고 ai에게 질문했더니 아래 코드를 index.php 적당한 위치에 삽입하라고 하는데 코드를 넣고 새로 고침해도 별 반응이 없네요
아래는 ai 작성한 조회수 최대인 게시글 추출하는 코드인데 오류 메세지도 없고 글도 추출 안되네요
<?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
그누보드에서는 전체 게시판 테이블이 없습니다.
게시판마다 테이블이 별도입니다.
최신글 테이블에는 전체 게시판 데이터가 있긴 한데.. (전체 게시판 테이블 대용으로 활용 가능)
가장 근사치의 방법으로 다음의 코드를 생각해 볼 수 있습니다.
현재 기준, 그누보드를 가장 잘 이해하고 있는 AI 는 '클로드' ( https://claude.ai ) 입니다.
<?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
}
?>
두 분 모두 감사합니다~~ 채택은 한분만 할 수 있어서 한분만 했네요~~ 모두 잘 되고 있습니다
답변을 작성하시기 전에 로그인 해주세요.