최근게시물(latest)도 검색에 포함하려면? 정보
최근게시물(latest)도 검색에 포함하려면?
본문
list.skin.php 파일위에 최근게시물(latest)을 불러서 사용하고 있습니다.
bo_table=oneroom&sca=검색어
위에처럼 주소에 검색어를 넣으면, list.skin.php쪽에는 검색이 가능해요.
그런데 최근게시물로 불러온쪽에는 검색이 안되요.
검색 영향을 전혀 안받는 것 같아요.
어떻게 하면, list쪽 처럼 최근게시물(latest)도 검색이 될까요?
bo_table=oneroom&sca=검색어
위에처럼 주소에 검색어를 넣으면, list.skin.php쪽에는 검색이 가능해요.
그런데 최근게시물로 불러온쪽에는 검색이 안되요.
검색 영향을 전혀 안받는 것 같아요.
어떻게 하면, list쪽 처럼 최근게시물(latest)도 검색이 될까요?
댓글 전체
latest 를 불러오는 latest 함수에선 where 절을 따로 가져오지 않기 때문에 검색이 안될겁니다. :) ㅎㅎ
lib / latest.lib.php 파일 로드
▼ 아래 소스 추가
// 최신글 추출
function latest2($skin_dir="", $bo_table, $rows=10, $subject_len=40, $sca="", $sfl = "", $stx="" )
{
global $g4;
if ($skin_dir)
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/$skin_dir";
else
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/basic";
$list = array();
$sql_search = "";
$sql = " select * from {$g4['board_table']} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름]
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx);
}
$sql = " select * from $tmp_write_table where wr_is_comment = 0 and $sql_search order by wr_num limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
▼ list.skin.php 에서 최근 게시물 불러올 시
latest2('스킨명', 'bo_table', 출력라인, 제목길이, 검색할카테고리, 검색할 필드명, 검색할 키워드)
이렇게 호출 하면 될겁니다. . 음 아마도?
lib / latest.lib.php 파일 로드
▼ 아래 소스 추가
// 최신글 추출
function latest2($skin_dir="", $bo_table, $rows=10, $subject_len=40, $sca="", $sfl = "", $stx="" )
{
global $g4;
if ($skin_dir)
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/$skin_dir";
else
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/basic";
$list = array();
$sql_search = "";
$sql = " select * from {$g4['board_table']} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름]
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx);
}
$sql = " select * from $tmp_write_table where wr_is_comment = 0 and $sql_search order by wr_num limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
▼ list.skin.php 에서 최근 게시물 불러올 시
latest2('스킨명', 'bo_table', 출력라인, 제목길이, 검색할카테고리, 검색할 필드명, 검색할 키워드)
이렇게 호출 하면 될겁니다. . 음 아마도?
답변 감사드려요~ ㅎ
현님 카테고리를 전체로 하였을때
select * from g4_write_oneroom where wr_is_comment = 0 and order by wr_num limit 0, 8
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by wr_num limit 0, 8' at line 1
error file : /bbs/board.php
이렇게 오류가 나오는데, 이 문제도 해결할 수 있을까요?
현님 카테고리를 전체로 하였을때
select * from g4_write_oneroom where wr_is_comment = 0 and order by wr_num limit 0, 8
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by wr_num limit 0, 8' at line 1
error file : /bbs/board.php
이렇게 오류가 나오는데, 이 문제도 해결할 수 있을까요?
lib을 아래와 같이 하여 본 문제를 해결하였습니다.
같은 문제 있으신 분들 참고하세요. :)
// 최신글 추출
function latest2($skin_dir="", $bo_table, $rows=10, $subject_len=40, $sca="", $sfl = "", $stx="" )
{
global $g4;
if ($skin_dir)
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/$skin_dir";
else
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/basic";
$list = array();
$sql_search = "";
$sql = " select * from {$g4['board_table']} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름]
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx);
$sql_search = "and ".$sql_search;
}
$sql = " select * from $tmp_write_table where wr_is_comment = 0 $sql_search order by wr_num limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
같은 문제 있으신 분들 참고하세요. :)
// 최신글 추출
function latest2($skin_dir="", $bo_table, $rows=10, $subject_len=40, $sca="", $sfl = "", $stx="" )
{
global $g4;
if ($skin_dir)
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/$skin_dir";
else
$GLOBALS['latest_skin_path'] = $latest_skin_path = "{$g4['path']}/skin/latest/basic";
$list = array();
$sql_search = "";
$sql = " select * from {$g4['board_table']} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름]
if ($sca || $stx)
{
$sql_search = get_sql_search($sca, $sfl, $stx);
$sql_search = "and ".$sql_search;
}
$sql = " select * from $tmp_write_table where wr_is_comment = 0 $sql_search order by wr_num limit 0, $rows ";
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++) {
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}