초보 그누보드 사용자 질문 전체검색 페이징 처리 질문요
php 다룬지 2주 밖에 안돼는 초보 입니다.
그누보드를 이용해서 전체검색중 특정그룹만 선택하게 해 놓고 조건을 넣어서 검색을 하게 했습니다
일단 검색은 돼는데 페이징이 문제가 있어서 적어 봅니다.
페이징은 제대로 나온데 첫페이지에서 2번째 페이지 넘기면 게시물이 없다고 뜨네요..
이 문제 를 어떻게 해결해야 할찌 고민하다 보니 스킨 쪽이 아닌가해서 스킨쪽을 보니 스킨쪽은 단순히 $write_pages 이거만 가져오더라구요 해결방법은 몬지 아니면 페이징 처리가 어떤 원리로 처리 돼는지 궁금해서 적어봅니다 잘 부탁 드려염...
search3.php 원본 search.php 건드리기 시러서 복사해서 이 search3.php파일로 링크 걸어서 검색 했습니다. 허접하지만 쿼리문 제 홈페이지에 맞게 살작 건드렸고요.. 잘 튜닝된 쿼리문은 아니고요... ^^;;
먼저 search3.php 소스 입니다.
'' ";
$row3 = sql_fetch($sql3);
if (!$row3[cnt])
continue;
}
}
}
$g4_search[tables][] = $row[bo_table];
$g4_search[read_level][] = $row[bo_read_level];
}
$search_query = "sfl=".urlencode($sfl)."&stx=".urlencode($stx)."&sop=$sop";
$text_stx = get_text(stripslashes($stx));
$op1 = "";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = explode(" ", $stx);
// 검색필드를 구분자로 나눈다. 여기서는 +
$field = explode("||", trim($sfl));
$str = "(";
for ($i=0; $i $search_table_count[$i])
{
$table_index = $i;
$from_record = $from_record - $search_table_count[$i-1];
break;
}
}
$bo_subject = array();
$list = array();
$k=0;
for ($idx=$table_index; $idx= $member[mb_level])
{
$row[wr_content]= strip_tags($row[wr_content]);
$content = cut_str(get_text($row[wr_content]),300,"…"); // 검색에 html 보이지 않게 수정 topschool
$content = cut_str(conv_content($row[wr_content],2),300,"…");
if (strstr($sfl, "wr_content"))
$content = search_font($stx, $content);
}
else
$content = '';
$list[$idx][$i][subject] = $subject;
$list[$idx][$i][content] = $content;
$list[$idx][$i][name] = get_sideview($row[mb_id], cut_str($row[wr_name], $config[cf_cut_name]), $row[wr_email], $row[wr_homepage]);
$list[$idx][$i][wr_3] = $row[wr_3];
$list[$idx][$i][wr_5] = $row[wr_5];
$list[$idx][$i][wr_7] = $row[wr_7];
$list[$idx][$i][wr_8] = $row[wr_8];
$list[$idx][$i][wr_9] = $row[wr_9];
$list[$idx][$i][wr_10] = $row[wr_10];
$k++;
if ($k >= $rows)
break;
}
sql_free_result($result);
if ($k >= $rows)
break;
$from_record = 0;
}
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$search_query&gr_id=$gr_id&srows=$srows&onetable=$onetable&page=");
//$write_pages = get_jy_paginate($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$search_query&gr_id=$gr_id&srows=$srows&onetable=$onetable&page=");
echo "";
}
$group_select = "전체 분류";
$sql = " select gr_id, gr_subject from $g4[group_table] order by gr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
$group_select .= "$row[gr_subject]";
$group_select .= "";
if (!$sfl) $sfl = "wr_subject";
if (!$sop) $sop = "or";
$search_skin_path = "$g4[path]/skin/search/$config[cf_search_skin]";
//include_once("$search_skin_path/search.skin.php");
include_once("$search_skin_path/list.skin.php");
include_once("./_tail.php");
?>
두번째는 전체검색 스킨 소스 입니다. 그중에 페이징 부분만 넣을께요..
그누보드를 이용해서 전체검색중 특정그룹만 선택하게 해 놓고 조건을 넣어서 검색을 하게 했습니다
일단 검색은 돼는데 페이징이 문제가 있어서 적어 봅니다.
페이징은 제대로 나온데 첫페이지에서 2번째 페이지 넘기면 게시물이 없다고 뜨네요..
이 문제 를 어떻게 해결해야 할찌 고민하다 보니 스킨 쪽이 아닌가해서 스킨쪽을 보니 스킨쪽은 단순히 $write_pages 이거만 가져오더라구요 해결방법은 몬지 아니면 페이징 처리가 어떤 원리로 처리 돼는지 궁금해서 적어봅니다 잘 부탁 드려염...
search3.php 원본 search.php 건드리기 시러서 복사해서 이 search3.php파일로 링크 걸어서 검색 했습니다. 허접하지만 쿼리문 제 홈페이지에 맞게 살작 건드렸고요.. 잘 튜닝된 쿼리문은 아니고요... ^^;;
먼저 search3.php 소스 입니다.
'' ";
$row3 = sql_fetch($sql3);
if (!$row3[cnt])
continue;
}
}
}
$g4_search[tables][] = $row[bo_table];
$g4_search[read_level][] = $row[bo_read_level];
}
$search_query = "sfl=".urlencode($sfl)."&stx=".urlencode($stx)."&sop=$sop";
$text_stx = get_text(stripslashes($stx));
$op1 = "";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = explode(" ", $stx);
// 검색필드를 구분자로 나눈다. 여기서는 +
$field = explode("||", trim($sfl));
$str = "(";
for ($i=0; $i $search_table_count[$i])
{
$table_index = $i;
$from_record = $from_record - $search_table_count[$i-1];
break;
}
}
$bo_subject = array();
$list = array();
$k=0;
for ($idx=$table_index; $idx= $member[mb_level])
{
$row[wr_content]= strip_tags($row[wr_content]);
$content = cut_str(get_text($row[wr_content]),300,"…"); // 검색에 html 보이지 않게 수정 topschool
$content = cut_str(conv_content($row[wr_content],2),300,"…");
if (strstr($sfl, "wr_content"))
$content = search_font($stx, $content);
}
else
$content = '';
$list[$idx][$i][subject] = $subject;
$list[$idx][$i][content] = $content;
$list[$idx][$i][name] = get_sideview($row[mb_id], cut_str($row[wr_name], $config[cf_cut_name]), $row[wr_email], $row[wr_homepage]);
$list[$idx][$i][wr_3] = $row[wr_3];
$list[$idx][$i][wr_5] = $row[wr_5];
$list[$idx][$i][wr_7] = $row[wr_7];
$list[$idx][$i][wr_8] = $row[wr_8];
$list[$idx][$i][wr_9] = $row[wr_9];
$list[$idx][$i][wr_10] = $row[wr_10];
$k++;
if ($k >= $rows)
break;
}
sql_free_result($result);
if ($k >= $rows)
break;
$from_record = 0;
}
$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$search_query&gr_id=$gr_id&srows=$srows&onetable=$onetable&page=");
//$write_pages = get_jy_paginate($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$search_query&gr_id=$gr_id&srows=$srows&onetable=$onetable&page=");
echo "";
}
$group_select = "전체 분류";
$sql = " select gr_id, gr_subject from $g4[group_table] order by gr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
$group_select .= "$row[gr_subject]";
$group_select .= "";
if (!$sfl) $sfl = "wr_subject";
if (!$sop) $sop = "or";
$search_skin_path = "$g4[path]/skin/search/$config[cf_search_skin]";
//include_once("$search_skin_path/search.skin.php");
include_once("$search_skin_path/list.skin.php");
include_once("./_tail.php");
?>
두번째는 전체검색 스킨 소스 입니다. 그중에 페이징 부분만 넣을께요..
"; } ?>", $write_pages); $write_pages = str_replace("이전", " ", $write_pages);$write_pages = str_replace("다음", " ", $write_pages);$write_pages = str_replace("맨끝", " ", $write_pages);$write_pages = preg_replace("/([0-9]*)/", "$1", $write_pages); $write_pages = preg_replace("/([0-9]*)/", "$1", $write_pages); ?> "; } ?> |
|
댓글을 작성하시려면 로그인이 필요합니다.
"; } ?>
", $write_pages);
", $write_pages);
", $write_pages);
"; } ?>