전체 검색 개수 지정 - sql문과 limit 구문 사용법 (검색 결과 개수 제한) > 웹제작/운영

사이트 내 전체검색
[멀티검색] 먼저 왼쪽 검색창에 검색어를 입력하세요.
  • 네이버
  • 다음
  • 구글
  • 유튜브
  • 랜덤Go
[멀티검색] 먼저 왼쪽 검색창에 검색어를 입력하세요.
  • 네이버
  • 다음
  • 구글
  • 유튜브
  • 랜덤Go

웹제작/운영

그누보드 전체 검색 개수 지정 - sql문과 limit 구문 사용법 (검색 결과 개수 제한)

페이지 정보

profile_image
작성자 키스세븐
조회 1,250회 작성일 22-06-07 13:10

본문

전체 검색 개수 지정

sql문과 limit 구문 사용법


그누보드의 전체 검색 결과를 보면 검색되는 모든 결과값이 다 나와서 정신이 없다.

포털 검색 엔진처럼 전체 검색 개수를 지정하는 방법은 sql문의 limit 구문 사용법을 알면 간단히 해결할 수 있다.

그 예제와 코드 소스를 설명한다.



전체 검색 개수 지정 - sql문과 limit 구문 사용법 (검색 결과 개수 제한)



그누보드의 전체 검색 개수 지정 위치


그누보드의 검색 결과 개수 제한은 bbs에 있는 search.php 파일을 수정해야 한다. 이것은 코어 파일이므로 만약을 대비해서 반드시 백업 받은 후에 변경하는 것이 좋다. 


search.php 파일을 열면서 아래의 세 가지 명령 라인의 위치를 확인해야 한다. 

버전에 따라 약간의 차이가 있을 수 있으니 Ctrl+F로 찾아서 다음 limit 구문에 따라 수정한다. 


찾아야 할 세 가지 $sql 라인

[code]

$sql = " select wr_id from {$tmp_write_table} where {$sql_search} ";

[/code]

[code]

$sql = " select bo_subject, bo_mobile_subject from {$g5['board_table']} where bo_table = '{$search_table[$idx]}' ";

[/code]

[code]

$sql = " select * from {$tmp_write_table} where {$sql_search} order by wr_id desc limit {$from_record}, {$rows} ";

[/code]

이 라인 마지막에 추가하는 것이다. 



검색 결과 개수 limit 구문 사용법


위에서 찾은 3가지에 limit 구문을 추가해서 검색 결과값의 개수를 제한하려면 아래처럼 마지막에 각각 추가하면 된다.


하나의 게시판 당 3개씩만 출력하라는 예제 코드 소스다. (검색 제한을 바꾸고 싶으면 3자를 원하는 숫자로 바꾼다)

[code]

$sql = " select wr_id from {$tmp_write_table} where {$sql_search} limit 0,3";

[/code]

[code]

$sql = " select bo_subject, bo_mobile_subject from {$g5['board_table']} where bo_table = '{$search_table[$idx]}' limit 0,3";

[/code]

[code]

$sql = " select * from {$tmp_write_table} where {$sql_search} order by wr_id desc limit {$from_record}, 3 ";

[/code]

마지막 라인을 보면 {$rows}가 사라지고 3이라는 숫자를 넣은 것을 볼 수 있다.

 

limit 구문의 사용법은 두 가지가 있다.

  • limit 3 : 맨 위의 3개만 불러올 때
  • limit 0,3 : 0번째부터 3번째까지만 불러올 때


그런데 이렇게 하고 보면 전체 검색 결과 페이징에서 중복이 보이는 경우가 있다.

그럴 때는 두 번째에 있는 $sql = " select bo_subject, bo_mobile_subject from {$g5['board_table']} where bo_table = '{$search_table[$idx]}'에서 limit 구문을 빼버리면 된다.

세 가지 코드 수정 중 전체 검색의 개수를 확정하는 것에 가장 중요한 것은, 세 번째에 있는 $sql = " select * from {$tmp_write_table} where {$sql_search} order by wr_id desc limit {$from_record}, 3 "; 이니 이것은 반드시 수정한다.


 

limit 구문으로 결과 값 제한하기


limit 구문란, SQL의 개수를 제한하는 명령이다. 

흔히 MySQL 데이터베이스에 SELECT 를 통해 필요한 것을 검색한 후, 그 결과값을 가져 올 때 얼마만큼 보여줄 것인가를 결정할 때 사용한다.


이것은 SQL에 명령을 내릴 때 MySQL의 SELECT 문을 통해서 추가로 붙는 기능이다. 아래 예제에서 확인해 보자.

[code]

select * from 대상 where 조건 추가기능

[/code]

위의 코드 소스는 기본적인 MySQL 명령문이다. 

여기서 "대상"은 테이블 이름이며, "조건"은 검색이나 명령어다.

이때 * 대신 특정 단어를 쓸 때도 있는데, 일반적인 검색에서는 다양하게 사용되어야 하므로 와일드 카드인 *를 사용한다.


이때 마지막의 "추가기능"이 limit 구문 결과 값 제한에 사용되는 부분이다. [저작권법 표시] 원본 출처 : 키스세븐(www.kiss7.kr)

그래서 여기에 limit로 제한을 넣어주면 필요한 만큼만 활용할 수 있는 것이다.

 

 

이것과 더블어서 전체 검색 결과에서 특정 게시판일 경우 역순으로 정렬하는 방법도 알아 두면 좋다.

아래 링크를 참고하면 도움이 될 것이다.

전체검색 정렬 순서 - 그누보드 특정 검색 결과 역순 방법 (ASC, DESC)

 

 

추천0
총 87개 (1Page)
  • RSS
웹제작/운영 목록
번호 제목 조회 추천 날짜
공지 공지 476 0 03-26
86 그누보드 365 0 02-25
85 그누보드 1504 0 10-17
84 SCRIPT 742 0 10-17
83 CSS 676 0 09-10
82 PHP 1140 0 08-26
81 PHP 734 0 08-21
80 기타활용 648 0 08-15
79 그누보드 1227 0 08-05
78 CSS 888 0 08-04
77 HTML 1763 0 07-24
76 그누보드 482 0 07-24
75 HTML 844 0 07-21
74 CSS 716 0 07-18
73 그누보드 662 0 07-09

검색


    허브사이트 "키스세븐"
    [허브사이트란?]
    수많은 사이트와 포털을
    한 번에 모아서
    사용할 수 있는 서비스를 말합니다.