조회수 많은글 뽑기에서 기간설정 문의 정보
그누보드 조회수 많은글 뽑기에서 기간설정 문의본문
안녕하세요
php를 잘 모르는 상태에서 여기저기 짜집기 해서 조회수(추천순)많은 게시물 뽑기를 했습니다
근데..맨날 그 글만 베스트가 되더군요
이걸..최근 100개의 글이나..최근 15일간의 글이나..등등
조건으로 걸어서 하는 방법은 없을까요..
아래는 제가 지금 쓰는 소스 입니다
어디를 수정하면 좋은지..아시는분 꼭 좀 부탁 드립니다..ㅠㅠ
------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "STYLE");
$maxrow = 5; // default 조회 값
?>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" BACKGROUND="a_img/com_bbs.gif">
<tr> <td width='' height="20" valign=top> <? $sql = " select bo_subject, bo_table
from $cfg[table_board]
where bo_table = 'com_6' "; // 여기에 원하는 게시판이름을 설정하세요.
$result = sql_query($sql);
while ($row = mysql_fetch_array($result)) {
$tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";
$sql2 = " select wr_id,
wr_parent_id,
mb_id,
wr_name,
wr_email,
wr_homepage,
wr_num,
wr_subject,
wr_comment,
wr_commentcnt,
wr_datetime,
wr_good,
wr_hit
from $tbl
where wr_comment = '0'
order by wr_good desc
limit 0, $maxrow";
$result2 = sql_query($sql2);
for ($i = 0; $row2 = mysql_fetch_array($result2); $i++) {
$wr_subject = get_text($row2[wr_subject]);
$key = $row2[wr_good] . $row2[wr_datetime];
$list[$key]->bo_subject = $row[bo_subject];
$list[$key]->bo_table = $row[bo_table];
$list[$key]->mb_id = $row2[mb_id];
$list[$key]->mb_open = $row2[mb_open];
$list[$key]->wr_id = $row2[wr_id];
$list[$key]->wr_parent_id = $row2[wr_parent_id];
$list[$key]->wr_email = $row2[wr_email];
$list[$key]->wr_homepage = $row2[wr_homepage];
$list[$key]->wr_name = get_text(cut_str($row2[wr_name],12));
$list[$key]->wr_subject = get_text(cut_str($wr_subject,35,'…'));
$list[$key]->wr_comment = $row2[wr_comment];
$list[$key]->wr_commentcnt = $row2[wr_commentcnt];
$list[$key]->wr_datetime = $row2[wr_datetime];
$list[$key]->wr_good = $row2[wr_good];
}
mysql_free_result($result2);
}
mysql_free_result($result);
?><table width=100% border=0 cellspacing=0 cellpadding=0 ><?
if (count($list) > 0) {
$i=0;
krsort($list,1);
reset ($list);
foreach ($list as $key=>$value) {
if ($i >= $maxrow) break;
$comment = "";
$atag_comment = "";
if ($value->wr_comment > 0) {
$comment = "<span style='font-size:8pt;'>[c]</span> ";
$atag_comment = "#c{$value->wr_id}";
}
$commentcnt = "";
if ($value->wr_commentcnt > 0) {
$commentcnt = "<font size=-2>({$value->wr_commentcnt})</font>";
}
$name = gblayer($value->mb_id, cut_str($value->wr_name,12), $value->wr_email, $value->wr_homepage);
$value->bo_subject = cut_str($value->bo_subject, 50);
$list = $i++%2;
echo "<tr align=center>";
echo "<td align=left width=330 height=20><b>ㆍ</b><a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=".$value->bo_table."&wr_id=".$value->wr_parent_id."$atag_comment'>$comment{$value->wr_subject}</a> </td>";
echo "<td width=100>(추천수:{$value->wr_good})</td>";
echo "</tr>\n";
}
} else
echo "<td height=100 align=center colspan=4>등록된 글이 없습니다.</td>";
?> </table></td></tr>
php를 잘 모르는 상태에서 여기저기 짜집기 해서 조회수(추천순)많은 게시물 뽑기를 했습니다
근데..맨날 그 글만 베스트가 되더군요
이걸..최근 100개의 글이나..최근 15일간의 글이나..등등
조건으로 걸어서 하는 방법은 없을까요..
아래는 제가 지금 쓰는 소스 입니다
어디를 수정하면 좋은지..아시는분 꼭 좀 부탁 드립니다..ㅠㅠ
------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "STYLE");
$maxrow = 5; // default 조회 값
?>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" BACKGROUND="a_img/com_bbs.gif">
<tr> <td width='' height="20" valign=top> <? $sql = " select bo_subject, bo_table
from $cfg[table_board]
where bo_table = 'com_6' "; // 여기에 원하는 게시판이름을 설정하세요.
$result = sql_query($sql);
while ($row = mysql_fetch_array($result)) {
$tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";
$sql2 = " select wr_id,
wr_parent_id,
mb_id,
wr_name,
wr_email,
wr_homepage,
wr_num,
wr_subject,
wr_comment,
wr_commentcnt,
wr_datetime,
wr_good,
wr_hit
from $tbl
where wr_comment = '0'
order by wr_good desc
limit 0, $maxrow";
$result2 = sql_query($sql2);
for ($i = 0; $row2 = mysql_fetch_array($result2); $i++) {
$wr_subject = get_text($row2[wr_subject]);
$key = $row2[wr_good] . $row2[wr_datetime];
$list[$key]->bo_subject = $row[bo_subject];
$list[$key]->bo_table = $row[bo_table];
$list[$key]->mb_id = $row2[mb_id];
$list[$key]->mb_open = $row2[mb_open];
$list[$key]->wr_id = $row2[wr_id];
$list[$key]->wr_parent_id = $row2[wr_parent_id];
$list[$key]->wr_email = $row2[wr_email];
$list[$key]->wr_homepage = $row2[wr_homepage];
$list[$key]->wr_name = get_text(cut_str($row2[wr_name],12));
$list[$key]->wr_subject = get_text(cut_str($wr_subject,35,'…'));
$list[$key]->wr_comment = $row2[wr_comment];
$list[$key]->wr_commentcnt = $row2[wr_commentcnt];
$list[$key]->wr_datetime = $row2[wr_datetime];
$list[$key]->wr_good = $row2[wr_good];
}
mysql_free_result($result2);
}
mysql_free_result($result);
?><table width=100% border=0 cellspacing=0 cellpadding=0 ><?
if (count($list) > 0) {
$i=0;
krsort($list,1);
reset ($list);
foreach ($list as $key=>$value) {
if ($i >= $maxrow) break;
$comment = "";
$atag_comment = "";
if ($value->wr_comment > 0) {
$comment = "<span style='font-size:8pt;'>[c]</span> ";
$atag_comment = "#c{$value->wr_id}";
}
$commentcnt = "";
if ($value->wr_commentcnt > 0) {
$commentcnt = "<font size=-2>({$value->wr_commentcnt})</font>";
}
$name = gblayer($value->mb_id, cut_str($value->wr_name,12), $value->wr_email, $value->wr_homepage);
$value->bo_subject = cut_str($value->bo_subject, 50);
$list = $i++%2;
echo "<tr align=center>";
echo "<td align=left width=330 height=20><b>ㆍ</b><a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table=".$value->bo_table."&wr_id=".$value->wr_parent_id."$atag_comment'>$comment{$value->wr_subject}</a> </td>";
echo "<td width=100>(추천수:{$value->wr_good})</td>";
echo "</tr>\n";
}
} else
echo "<td height=100 align=center colspan=4>등록된 글이 없습니다.</td>";
?> </table></td></tr>
댓글 전체
답변 감사드립니다
근데..최근글 뽑기가 아니라..
최근 100개의 글중 조회수 높은 글 혹은 추천수 높은글 5개를 불러오는게 문제거든요
위의 소스는 com_6 이라는 게시판 통틀어 추천수 순위 5개 뽑아오는건데
맨날..그 글들만 읽으니..그 글들 추천수만 1-5등이 됩니다
이걸..최근 100개중..추천수 혹은 조회수 높은걸로 봅을수 있는지가 고민입니다
감사합니다
근데..최근글 뽑기가 아니라..
최근 100개의 글중 조회수 높은 글 혹은 추천수 높은글 5개를 불러오는게 문제거든요
위의 소스는 com_6 이라는 게시판 통틀어 추천수 순위 5개 뽑아오는건데
맨날..그 글들만 읽으니..그 글들 추천수만 1-5등이 됩니다
이걸..최근 100개중..추천수 혹은 조회수 높은걸로 봅을수 있는지가 고민입니다
감사합니다
항상 같은글만뜬다는건 글이 하나뿐인아닌이상 정렬방식에 문제가 있는듯 싶네요..
where bo_table = 'com_6' "; // 여기에 원하는 게시판이름을 설정하세요.
이부분이 실제적인 sql 문의 where (검색질의)입니다.
위의 구문을
where bo_table = 'com_6' order by desc;" // 여기에 원하는 게시판이름을 설정하세요.
하시면 내림정렬을 하게 됩니다.
일간 최신글이나 그런건 팁테크 보시면 많이 나옵니다.
자세한것은 mysql 을 공부하시기 바랍니다.
where bo_table = 'com_6' "; // 여기에 원하는 게시판이름을 설정하세요.
이부분이 실제적인 sql 문의 where (검색질의)입니다.
위의 구문을
where bo_table = 'com_6' order by desc;" // 여기에 원하는 게시판이름을 설정하세요.
하시면 내림정렬을 하게 됩니다.
일간 최신글이나 그런건 팁테크 보시면 많이 나옵니다.
자세한것은 mysql 을 공부하시기 바랍니다.