정렬을 한가지 값이 아닌 두개 항목을 더한 값으로... 정보
정렬을 한가지 값이 아닌 두개 항목을 더한 값으로...본문
인기 최신글을 만들려고 하는데요
izen님의 최신글을 사용하다가
히트수와 링크히트수를 더한 값으로 인기 최신글을 추출하고 싶어서 수정하려고 하는데
도저히 모르겠어요.
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q1 = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows ";
}
{
$sql_gr_Q1 = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows ";
}
요 부분을 wr_hit 와 wr_link1_hit 이 더해진 값 순서대로 높은순으로 정렬 하고 싶은데
어떻게 수정하면 될까요?
댓글 전체
if ($izen_sort == 'wr_hit + wr_link1_hit')
{
$sql_gr_Q1 = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort asc limit 0, $rows ";
}
이거 아닐까요?
{
$sql_gr_Q1 = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort asc limit 0, $rows ";
}
이거 아닐까요?
if ($izen_sort == 'wr_hit')
{
$viewlink = 'wr_hit + wr_link1_hit';
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $viewlink desc limit 0, $rows ";
}
이렇게 넣었는데 안되는거 같아요.
wr_hit + wr_link1_hit 값이 22인게 32인거 보다 먼저나오네요;;
혹시 다른 부분도 수정해야 하는 부분이 있나요?
---- 아이젠님 최신글 전체내용 ------------------------------------------------------
<?
if (!defined('_GNUBOARD_')) exit;
/*
izen.group.lib.php
제작일 : 2006-12-08
지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328
그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.
izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('gr_best_news', 'news', wr_hit, 10, 28, 30);
*/
# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}
# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}
# 최신글 추출
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
global $g4;
$nowYmd = date(Ymd); # 시작시간을 구합니다.
$time = time();
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time));
if ($skin_dir)
{
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
}
else
{
$latest_skin_path = "$g4[path]/skin/latest/basic";
}
$list = array();
$sql= " select bo_table from {$g4['board_table']} where gr_id='$gr_id' and bo_use_search='1' order by bo_order_search ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";
# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
if ($izen_sort == 'wr_hit')
{
$viewlink = 'wr_hit + wr_link1_hit';
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $viewlink desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_scrap <> 0 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_1 = 1 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = " wr_is_comment <> '1' order by $izen_sort desc limit 0, $rows ";
}
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);
#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $board['bo_table'];
}
}
if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}
elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
{
$viewlink = 'wr_hit + wr_link1_hit';
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $viewlink desc limit 0, $rows ";
}
이렇게 넣었는데 안되는거 같아요.
wr_hit + wr_link1_hit 값이 22인게 32인거 보다 먼저나오네요;;
혹시 다른 부분도 수정해야 하는 부분이 있나요?
---- 아이젠님 최신글 전체내용 ------------------------------------------------------
<?
if (!defined('_GNUBOARD_')) exit;
/*
izen.group.lib.php
제작일 : 2006-12-08
지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328
그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.
izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('gr_best_news', 'news', wr_hit, 10, 28, 30);
*/
# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}
# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}
# 최신글 추출
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
global $g4;
$nowYmd = date(Ymd); # 시작시간을 구합니다.
$time = time();
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time));
if ($skin_dir)
{
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
}
else
{
$latest_skin_path = "$g4[path]/skin/latest/basic";
}
$list = array();
$sql= " select bo_table from {$g4['board_table']} where gr_id='$gr_id' and bo_use_search='1' order by bo_order_search ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";
# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
if ($izen_sort == 'wr_hit')
{
$viewlink = 'wr_hit + wr_link1_hit';
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $viewlink desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_scrap <> 0 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_1 = 1 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = " wr_is_comment <> '1' order by $izen_sort desc limit 0, $rows ";
}
$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);
#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $board['bo_table'];
}
}
if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}
elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}
$list= array_slice($list, 0, $rows);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
desc를 asc로 바꾸세요.
... order by $viewlink asc ...
... order by $viewlink asc ...
if ($izen_sort == 'wr_hit')
{
//usort($list, 'izen_usort1'); -> 이부분을 주석처리했어요
}
아는 분께 물어서 해결했어요 ㅎ
지구인님도 답을 주셔서 감사합니다
{
//usort($list, 'izen_usort1'); -> 이부분을 주석처리했어요
}
아는 분께 물어서 해결했어요 ㅎ
지구인님도 답을 주셔서 감사합니다