여분필드 검색 질문입니다. 채택완료
전체검색에서 여분필드 (wr_22)가 검색이 되게 할려고 질문, 답변 검색해서 수정해봤습니다.
bbs/search.php에서
--84줄 근처--
for ($k=0; $k --205번줄 근처-- $list[$idx][$i]['subject'] = $subject;
$list[$idx][$i]['content'] = $content;
$list[$idx][$i]['wr_22'] = $wr_22; 이렇게 했고요. head.php에서 이렇게 했습니다. -------------------------------------------------------------------- 문제는 이렇게 하고 전체 검색을 하면 wr_22가 있는 글은 검색이 되는데요. 기존 subject가 검색이 안됩니다. 그리고 search.skin.php에서 이렇게 해도 wr_22 가 출력이 안됩니다. 며칠째 이 문제로 헤매고 있네요. 회원님들의 도움을 부탁드립니다. 꾸벅~
답변 2개
다른 곳은 문제 없어 보입니다
$list[$idx][$i]['wr_22'] = $wr_22; --> $list[$idx][$i]['wr_22'] = $row['wr_22'];
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
혹시 게시판 관리자에서 전체 검색 허용 채크 하셔는 가 확인하세요
그리고 제생각에는 아마도
122 번줄정도에 검색을 하느데
다른 게시판에도 22 즉 wr_22 필드가 있는가를 확인하세요 $sql = " select wr_id from {$tmp_write_table} where {$sql_search} "; echo $sql." ";
설명을 좀하자면
case 'wr_22' : case 'wr_subject' : case 'wr_content' :
추가를 하면 아래처럼 되죠?
((INSTR(wr_subject, '44') or INSTR(wr_content, '44') or INSTR(wr_22, '44')))
그런데 이걸 검색 커리 문구로 사용하느데
for ($i=0; $i 여기서즉 모든 검색을 하용한 게시판의 정보를 가저와요 그런데 select wr_id from g510_write_bible2 where ((INSTR(wr_subject, '44') or INSTR(wr_content, '44') or INSTR(wr_22, '44'))) 이런식이 되게지요 문제는 검색 허용한 게시판이 4개면 4개 다 검색되는 건데 각각 게시판에 필드에 wr_22 이 있어야 오류가안나는거죠 또 --205번줄 근처-- $list[$idx][$i]['subject'] = $subject;
$list[$idx][$i]['content'] = $content;
$list[$idx][$i]['wr_22'] = $wr_22; 이러게하셔다구하느데요 $wr_22; 이걸 정의해주는 곳이 없자나요 예를 들면 if ($read_level[$idx] <= $member['mb_level'])
{
//$content = cut_str(get_text(strip_tags($row['wr_content'])), 300, "…");
$content = strip_tags($row['wr_content']);
$content = get_text($content, 1);
$content = strip_tags($content);
$content = str_replace(' ', '', $content);
$content = cut_str($content, 300, "…"); if (strstr($sfl, 'wr_content'))
$content = search_font($stx, $content);
}
else
$content = '';
$subject = get_text($row['wr_subject']);
if (strstr($sfl, 'wr_subject'))
$subject = search_font($stx, $subject); 이런식으로 정의를 해줘야 되는거죠
답변에 대한 댓글 3개
현재 두 분이 알려주신 덕분에 여분필드 내용 출력은 되는데요. 잘 되던 다른 게시판의 subject가 검색이 안됩니다. search.php를 원래대로 돌리면 wr_22가 검색이 안되고 제목은 검색이 되고, 질문처럼 wr_22 소스를 추가하면 wr_22는 검색이 되고 subject는 검색이 안됩니다.
이 부분 아시는 내용이 있으시면 도움 부탁드립니다.
답변 감사드리고요.^^
1. 해법1은 아래처럼 만들고 쿼리문에 wr_22 필드가 있는 게시판과 없는 게시판을 다르게 쿼리하도록
만들면 되겠습니다
case 에서 wr_22 부분 빼버리고
for 문 끝난 후 다음 코드 넣고
if (preg_match("/[a-zA-Z]/", $stx))
$str2=$str. " $sop INSTR(LOWER(wr_22), LOWER('$stx'))";
else $str2 =$str. " $sop INSTR(wr_22, '$stx')";
쿼리부분에 $sql_search가 사용된 곳 찾아서 아래와 같은 방법으로....
if($g5_search['tables'][$i]== 'wr_22있는 게시판') $sql=~~ where $str2
else $sql = 원본
2. 해법2는 모든 게시판에 wr_22필드를 추가하는 것입니다
귀한 시간내주시기 어려우셨을텐데 꼼꼼히 답변 주셔서 잘 해결되었습니다.
아직 공부가 부족해서 전체 게시판에 wr_22를 추가하는 방법으로 해결되었습니다.^^
다시 한번 감사드립니다.
무더위에 건강관리 잘하시고요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
알려주신대로 하니까 여분필드 내용이 출력이 잘 됩니다.
그런데 제 질문처럼 여분필드 소스를 추가하면 왜 잘 나오던 다른 게시판의 제목이 검색이 안되는걸까요? 혹시 아시는 부분이 있으면 다시 도움 부탁드려봅니다.