[천상재회의파워팁02]스크랩에도 검색기능을 적용하자(1) 정보
[천상재회의파워팁02]스크랩에도 검색기능을 적용하자(1)
본문
부득이하게 원본 수정을 요하는 부분이기에 스킨이 아닌 팁에 총 4회에 걸쳐 기재합니다.
또한 스킨의 경우 해당 스킨을 다운받아야 내용을 볼 수 있기에 적절한 피드백을 요하면서 시작합니다.
기본적으로 데이타베이스에 접속하셔서 스크랩테이블의 wr_id 다음에
wr_subject varchar(255) 필드를 생성하셔야 합니다.(제목으로 검색하기 위함)
bbs/scrap.php 입니다(항상 원본은 백업해 두시고 적용하십시오)
1번이미지는 일반 목록보기 입니다.
2번 이미지는 검색후 입니다.
태클은 환영합니다......^^
<?
include_once("./_common.php");
if (!$member[mb_id])
alert_close("회원만 조회하실 수 있습니다.");
$g4[title] = $member[mb_nick] . "님의 스크랩";
include_once("$g4[path]/head.sub.php");
//$list = array();
$sql_common = " from $g4[scrap_table] where mb_id = '$member[mb_id]' ";
//스크랩에서 검색기능추가(천상재회 http://www.triplecubic.om 2006/12/08)
if ($stx)
{
//$stx = trim($stx);
$stx = preg_replace("/\//", "\/", trim($stx));
$sop = strtolower($sop);
//if (!$sop || !($sop == "and" || $sop == "or")) $sop = "and"; // 연산자 and , or
$search_query = "sfl=".urlencode($sfl)."&stx=".urlencode($stx)."&sop=$sop";
$text_stx = get_text(stripslashes($stx));
$op1 = "";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = explode(" ", $stx);
// 검색필드를 구분자로 나눈다. 여기서는 +
$field = trim($sfl);
$str = " and ";
$str .= "(";
for ($i=0; $i<count($s); $i++)
{
//$search_str = strtolower($s[$i]);
$search_str = $s[$i];
$str .= $op1;
$str .= "(";
$op2 = "";
$str .= $op2;
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field), LOWER('$search_str'))";
else
$str .= "INSTR($field, '$search_str')";
$op2 = " or ";
$str .= ")";
$op1 = " $sop ";
}
$str .= ")";
//$sql_search = $str . " and wr_option not like '%secret%' "; // 비밀글은 제외
$sql_common .= $str;
}
//스크랩에서 검색기능추가 끝
$sql_order = " order by ms_id desc ";
$sql = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = $config[cf_page_rows];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$list = array();
$sql = " select *
$sql_common
$sql_order
limit $from_record, $rows ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = $row;
// 순차적인 번호 (순번)
$num = $total_count - ($page - 1) * $rows - $i;
// 게시판 제목
$sql2 = " select bo_subject from $g4[board_table] where bo_table = '$row[bo_table]' ";
$row2 = sql_fetch($sql2);
if (!$row2[bo_subject]) $row2[bo_subject] = "[게시판 없음]";
// 게시물 제목
$tmp_write_table = $g4[write_prefix] . $row[bo_table];
$sql3 = " select wr_subject from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row3 = sql_fetch($sql3, FALSE);
$subject = get_text(cut_str($row3[wr_subject], 100));
if (!$row3[wr_subject])
$row3[wr_subject] = "[글 없음]";
//스크랩에서 첫번째 이미지를 뽑자(천상재회 http://www.triplecubic.com 2006/11/29)
$sql4 = " select * from $g4[board_file_table] where bo_table = '$row[bo_table]' and wr_id = '$row[wr_id]' and bf_no = '0' ";
$result4 = sql_query($sql4);
$row4 = sql_fetch_array($result4);
$list[$i][bf_file] = $row4['bf_file'];
$list[$i][bf_source] = $row4['bf_source'];
$list[$i][bo_table] = $row4['bo_table'];
//스크랩에서 첫번째 이미지를 뽑자 끝
$list[$i][num] = $num;
$list[$i][opener_href] = "./board.php?bo_table=$row[bo_table]";
$list[$i][opener_href_wr_id] = "./board.php?bo_table=$row[bo_table]&wr_id=$row[wr_id]";
$list[$i][bo_subject] = $row2[bo_subject];
$list[$i][subject] = $subject;
$list[$i][del_href] = "./scrap_delete.php?ms_id=$row[ms_id]&page=$page";
}
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/scrap.skin.php");
include_once("$g4[path]/tail.sub.php");
?>
또한 스킨의 경우 해당 스킨을 다운받아야 내용을 볼 수 있기에 적절한 피드백을 요하면서 시작합니다.
기본적으로 데이타베이스에 접속하셔서 스크랩테이블의 wr_id 다음에
wr_subject varchar(255) 필드를 생성하셔야 합니다.(제목으로 검색하기 위함)
bbs/scrap.php 입니다(항상 원본은 백업해 두시고 적용하십시오)
1번이미지는 일반 목록보기 입니다.
2번 이미지는 검색후 입니다.
태클은 환영합니다......^^
<?
include_once("./_common.php");
if (!$member[mb_id])
alert_close("회원만 조회하실 수 있습니다.");
$g4[title] = $member[mb_nick] . "님의 스크랩";
include_once("$g4[path]/head.sub.php");
//$list = array();
$sql_common = " from $g4[scrap_table] where mb_id = '$member[mb_id]' ";
//스크랩에서 검색기능추가(천상재회 http://www.triplecubic.om 2006/12/08)
if ($stx)
{
//$stx = trim($stx);
$stx = preg_replace("/\//", "\/", trim($stx));
$sop = strtolower($sop);
//if (!$sop || !($sop == "and" || $sop == "or")) $sop = "and"; // 연산자 and , or
$search_query = "sfl=".urlencode($sfl)."&stx=".urlencode($stx)."&sop=$sop";
$text_stx = get_text(stripslashes($stx));
$op1 = "";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = explode(" ", $stx);
// 검색필드를 구분자로 나눈다. 여기서는 +
$field = trim($sfl);
$str = " and ";
$str .= "(";
for ($i=0; $i<count($s); $i++)
{
//$search_str = strtolower($s[$i]);
$search_str = $s[$i];
$str .= $op1;
$str .= "(";
$op2 = "";
$str .= $op2;
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field), LOWER('$search_str'))";
else
$str .= "INSTR($field, '$search_str')";
$op2 = " or ";
$str .= ")";
$op1 = " $sop ";
}
$str .= ")";
//$sql_search = $str . " and wr_option not like '%secret%' "; // 비밀글은 제외
$sql_common .= $str;
}
//스크랩에서 검색기능추가 끝
$sql_order = " order by ms_id desc ";
$sql = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$rows = $config[cf_page_rows];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$list = array();
$sql = " select *
$sql_common
$sql_order
limit $from_record, $rows ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = $row;
// 순차적인 번호 (순번)
$num = $total_count - ($page - 1) * $rows - $i;
// 게시판 제목
$sql2 = " select bo_subject from $g4[board_table] where bo_table = '$row[bo_table]' ";
$row2 = sql_fetch($sql2);
if (!$row2[bo_subject]) $row2[bo_subject] = "[게시판 없음]";
// 게시물 제목
$tmp_write_table = $g4[write_prefix] . $row[bo_table];
$sql3 = " select wr_subject from $tmp_write_table where wr_id = '$row[wr_id]' ";
$row3 = sql_fetch($sql3, FALSE);
$subject = get_text(cut_str($row3[wr_subject], 100));
if (!$row3[wr_subject])
$row3[wr_subject] = "[글 없음]";
//스크랩에서 첫번째 이미지를 뽑자(천상재회 http://www.triplecubic.com 2006/11/29)
$sql4 = " select * from $g4[board_file_table] where bo_table = '$row[bo_table]' and wr_id = '$row[wr_id]' and bf_no = '0' ";
$result4 = sql_query($sql4);
$row4 = sql_fetch_array($result4);
$list[$i][bf_file] = $row4['bf_file'];
$list[$i][bf_source] = $row4['bf_source'];
$list[$i][bo_table] = $row4['bo_table'];
//스크랩에서 첫번째 이미지를 뽑자 끝
$list[$i][num] = $num;
$list[$i][opener_href] = "./board.php?bo_table=$row[bo_table]";
$list[$i][opener_href_wr_id] = "./board.php?bo_table=$row[bo_table]&wr_id=$row[wr_id]";
$list[$i][bo_subject] = $row2[bo_subject];
$list[$i][subject] = $subject;
$list[$i][del_href] = "./scrap_delete.php?ms_id=$row[ms_id]&page=$page";
}
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/scrap.skin.php");
include_once("$g4[path]/tail.sub.php");
?>
추천
2
2
댓글 3개
에구..
기본적으로 데이타베이스에 접속하셔서 스크랩테이블의 wr_id 다음에
wr_subject varchar(255) 필드를 생성하셔야 합니다.(제목으로 검색하기 위함)
//접속해서 추가한다고 만졌는데 에러가....
초보는 그림에 떡^^
자동으로 만들어주삼...
기본적으로 데이타베이스에 접속하셔서 스크랩테이블의 wr_id 다음에
wr_subject varchar(255) 필드를 생성하셔야 합니다.(제목으로 검색하기 위함)
//접속해서 추가한다고 만졌는데 에러가....
초보는 그림에 떡^^
자동으로 만들어주삼...

업그레이드 버전 작업 완료되었고 정리중입니다...^^
필드가 하나 더 추가가 되기에 칠쟁이님만을 위한 셋업 화일을.....ㅠ.ㅠ
필드가 하나 더 추가가 되기에 칠쟁이님만을 위한 셋업 화일을.....ㅠ.ㅠ
기달릴꼬에요^^