게시판에 검색 기능 추가 – list.php 수정

정말 오랜만에 휴일을 즐기고 있습니다.
근 두 달만에 강좌를 업로드하네요.

오늘은 게시판에 검색 기능을 추가해보겠습니다.

검색 기능은 의외로 간단하게 구현됩니다.
원리는 매우 단순합니다.
사용자로부터 필드(컬럼) 이름과 검색어를 입력받으면, 이 필드(컬럼) 이름과 검색어로 된 조건절(where문) SQL 문장에 추가하면 됩니다.

예를 들면 이런 겁니다.

게시물 중에서 ‘제목'(subject)에 ‘테스트’라는 문자열이 있는 게시물을 찾고 싶다면,

SELECT * FROM tablename WHERE subject like ‘%테스트%’

이와 같이 하면 됩니다.

여기서 like는 와일드 카드를 사용할 수 있도록 합니다. %테스트%는  ‘테스트’가 포함된 모든 문자열을 말하는 겁니다.
테스트%는 ‘테스트’로 시작하는 문자열을, %테스트는 ‘테스트’로 끝나는 모든 문자열을 말합니다.
보다 자세한 내용은 본 사이트의 재미로 배우는 데이터베이스 입문 오라클 데이터 검색 Keywords(2) 강좌를 참조하세요.

자, 그럼 본격적으로 list.php 파일을 수정해 보겠습니다.

list.php는 PHP 게시판 프로젝트(1차)에서 만들었었죠?
PHP 게시판 프로젝트(1차) 강좌 제20강과 24강을 참조하세요.(20강의 소스 코드 73행을 조금 수정해야하는데, 그 설명을 24강에서 했습니다.)
수정된 list.php 파일은 자료실에 PHP 게시판 프로젝트 1차 완성본이라는 제목으로 등록되어 있습니다.

그럼, 위와 같이 수정된 list.php 파일이 있다고 가정하고…
이 파일에 약간의 코드만 추가하고 수정하면 검색 기능이 완성됩니다.

아래에 설명하고 있는 소스는 자료실에 HP 게시판 프로젝트 2 검색 기능(list.php 수정)라는 제목으로 등록해두었습니다.

  1. 먼저, 소스 파일 158~178행을 보세요.

    위의 코드는 목록 보기 페이지에 아래와 같은 검색 창을 보이게 합니다.

    코드를 설명드릴 게 있나….
    163행은 hidden 속성으로 페이지 번호를 넘깁니다.(사용자로부터 특정 값을 입력받는 게 아니라 현재 프로그램 내에서 설정된 $page 값을 넘기는 겁니다.)
    167행에서 ‘제목’을 기본값으로 선택(selected)해 놓았습니다.

  2. 13~16행은 위에서 입력받은 값으로 SQL 조건문(where절)을 구성하는 것입니다.


    $src_value 값이 있으면, 즉 검색어를 넘겨받았으면 $where 변수를 15행처럼 만드는 것입니다.

  3. 19행과 29행의 SQL 문에 $where를 추가하였습니다.(잘 살펴보세요~)


    특히 29행의 $where 위치에 주의하세요. $where의 위치에 따라 검색에 오류가 날 수 있습니다.
    order by 문은 where 문 뒤에 위치해야 합니다.

  4. 링크된 모든 곳에 src_name=$src_name&src_value=$src_value를 추가합니다.
    78, 116, 117, 123, 132, 139, 145, 146, 154행에서 적용되었습니다.

  5. 끝으로 list.php 외에
    글 쓰기, 수정, 삭제 관련 코드에서 링크 부분에도 src_name=$src_name&src_value=$src_value를 추가하면 끝납니다.

어떻습니까? 별로 어렵지 않죠?

이상, 오랜만에 동주아빠 손병목이었습니다.

위로 스크롤