G블러그 정열순 튜닝 질문입니다. 정보
G블러그 정열순 튜닝 질문입니다.
본문
지블러그를 설치 했습니다.
블러그에 메인페이지의 새로운글 가저오는 blog.lib.php 파일입니다..
저는 여기에서 정열순을 여러가지로 표현해볼까 합니다.
lib 소스중
/*
-----------------------------------------------------------
블로그 메인 글을 배열로 반환
-----------------------------------------------------------
*/
function get_blog_main($dv_id='', $st='', $sv='', $limit=15, $page=1)
{
global $gb4, $blog_search_paging;
$ret = array();
if (!$page) $page = 1;
$sql_select = " p.*, b.mb_id, b.writer, c.category_name ";
$sql_from = " $gb4[post_table] as p left join $gb4[blog_table] as b on p.blog_id = b.id left join $gb4[category_table] as c on p.category_id = c.id ";
if ($dv_id)
$sql_dv_id = " and division_id='$dv_id' ";
if ($st && $sv) {
switch ($st) {
case 'blog_name':
case 'writer':
case 'blog_name|writer':
case 'title':
case 'content':
case 'title|content':
$is_search = true; break;
default:
$is_search = false;
}
if ($is_search) {
if(strstr($st, '|')) {
$arr = explode('|', $st);
$sql_search = " and (".$arr[0]." LIKE '%$sv%' ";
for ($i=1; $i $sql_search .= " or ".$arr[$i]." LIKE '%$sv%' ";
}
$sql_search .= ")";
} else {
$sql_search = " and $st LIKE '%$sv%' ";
}
}
}
$sql_where = " p.secret=1 $sql_dv_id $sql_search ";
//////여기소스부분을 수정해봤습니다////
if($hit=='desc') {
$sql_order = "hit desc"; // 히트 내림차순 정열
}
elseif($hit=='asc') {
$sql_order = "hit ace"; // 히트 오름차순 정열
}
else{
$sql_order = " p.id desc "; // 기본정열
}
//// 여기까지
$row = sql_fetch(" select count(*) as cnt from $sql_from where $sql_where ");
$total_post = $row[cnt];
$total_page = (int)($total_post/$limit) + ($total_post%$limit==0 ? 0 : 1);
$page_start = $limit * ($page - 1);
$sql = " select $sql_select from $sql_from where $sql_where order by $sql_order limit $page_start, $limit ";
//echo $sql;
$qry = sql_query($sql);
while ($row = sql_fetch_array($qry))
{
if (!$row[category_name])
$row[category_name] = '분류없음';
$row[post_date] = date("m-d", strtotime($row[post_date]));
$row[content] = strip_tags($row[content]);
$row[content] = cut_str($row[content], 300);
$ret[] = $row;
}
$blog_search_paging = get_paging(10, $page, $total_page, "$PHP_SELF?st=$st&sv=$sv&page=");
return $ret;
}
이렇게 수정한다음에
패이지 블러올때
블러그 index.php?hit=desc <--- 이런식으로 불러왔는데 아무 변화가 없네요,,,
질문이 너무 막연한지 모르겠습니다.
결론짓자면 블러그에서 정열순을 여러가지 표현할려면 어떤 방법이 있나요?
추가질문 == 맴버의 포인트 순으로 정열 하는 방법도 알려주시면 감사 드리겠습니다.
테이블을 조인 해주면 되는것 같긴 한데,,,
몰라서 죄송합니다,,
블러그에 메인페이지의 새로운글 가저오는 blog.lib.php 파일입니다..
저는 여기에서 정열순을 여러가지로 표현해볼까 합니다.
lib 소스중
/*
-----------------------------------------------------------
블로그 메인 글을 배열로 반환
-----------------------------------------------------------
*/
function get_blog_main($dv_id='', $st='', $sv='', $limit=15, $page=1)
{
global $gb4, $blog_search_paging;
$ret = array();
if (!$page) $page = 1;
$sql_select = " p.*, b.mb_id, b.writer, c.category_name ";
$sql_from = " $gb4[post_table] as p left join $gb4[blog_table] as b on p.blog_id = b.id left join $gb4[category_table] as c on p.category_id = c.id ";
if ($dv_id)
$sql_dv_id = " and division_id='$dv_id' ";
if ($st && $sv) {
switch ($st) {
case 'blog_name':
case 'writer':
case 'blog_name|writer':
case 'title':
case 'content':
case 'title|content':
$is_search = true; break;
default:
$is_search = false;
}
if ($is_search) {
if(strstr($st, '|')) {
$arr = explode('|', $st);
$sql_search = " and (".$arr[0]." LIKE '%$sv%' ";
for ($i=1; $i $sql_search .= " or ".$arr[$i]." LIKE '%$sv%' ";
}
$sql_search .= ")";
} else {
$sql_search = " and $st LIKE '%$sv%' ";
}
}
}
$sql_where = " p.secret=1 $sql_dv_id $sql_search ";
//////여기소스부분을 수정해봤습니다////
if($hit=='desc') {
$sql_order = "hit desc"; // 히트 내림차순 정열
}
elseif($hit=='asc') {
$sql_order = "hit ace"; // 히트 오름차순 정열
}
else{
$sql_order = " p.id desc "; // 기본정열
}
//// 여기까지
$row = sql_fetch(" select count(*) as cnt from $sql_from where $sql_where ");
$total_post = $row[cnt];
$total_page = (int)($total_post/$limit) + ($total_post%$limit==0 ? 0 : 1);
$page_start = $limit * ($page - 1);
$sql = " select $sql_select from $sql_from where $sql_where order by $sql_order limit $page_start, $limit ";
//echo $sql;
$qry = sql_query($sql);
while ($row = sql_fetch_array($qry))
{
if (!$row[category_name])
$row[category_name] = '분류없음';
$row[post_date] = date("m-d", strtotime($row[post_date]));
$row[content] = strip_tags($row[content]);
$row[content] = cut_str($row[content], 300);
$ret[] = $row;
}
$blog_search_paging = get_paging(10, $page, $total_page, "$PHP_SELF?st=$st&sv=$sv&page=");
return $ret;
}
이렇게 수정한다음에
패이지 블러올때
블러그 index.php?hit=desc <--- 이런식으로 불러왔는데 아무 변화가 없네요,,,
질문이 너무 막연한지 모르겠습니다.
결론짓자면 블러그에서 정열순을 여러가지 표현할려면 어떤 방법이 있나요?
추가질문 == 맴버의 포인트 순으로 정열 하는 방법도 알려주시면 감사 드리겠습니다.
테이블을 조인 해주면 되는것 같긴 한데,,,
몰라서 죄송합니다,,
댓글 전체
그렇게 해서는 함수안에 $hit이 전달되지 않죠.
function get_blog_main($dv_id='', $st='', $sv='', $limit=15, $page=1, $order_key, $order_desc)
...
if (!$order_key) $order_key = "hit";
if (!$order_desc) $order_desc = "desc";
$sql_order = " $order_key $order_desc";
...
function get_blog_main($dv_id='', $st='', $sv='', $limit=15, $page=1, $order_key, $order_desc)
...
if (!$order_key) $order_key = "hit";
if (!$order_desc) $order_desc = "desc";
$sql_order = " $order_key $order_desc";
...

아빠불당님이 답변해주시니 영광입니다..
감사히 배우겠습니다.
감사히 배우겠습니다.
ㅎㅎ... gblog 완전 개조판을 준비중입니다.
테스트 좀 해봐주세요.
테스트 좀 해봐주세요.