메뉴 건너뛰기

프로그램언어

2015.04.14 19:27

검색어 처리 루틴

조회 수 20778 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

PHP 에서 검색어를 여러개 입력하여 AND 조건이나 OR 조건을 검색해야 하는 경우가 있다.


검색어가 여러개면 보통 이렇게 검색어 처리를 하기 쉽다.

$keystr = explode(" ", $keyword);

$sqlque .= " and (eng LIKE '%".trim($keystr[0])."%')";


if($keystr[1]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[1])."%')";
}
if($keystr[2]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[2])."%')";
}
if($keystr[3]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[3])."%')";
}
if($keystr[4]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[4])."%')";
}
if($keystr[5]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[5])."%')";
}


이걸 좀더 깔끔하기 처리하는 방법은 아래처럼 array 와 join 함수를 이용하는 것이다.

$keystr = explode(" ", $keyword);
$exp_query = array();
for ($i = 0; $i < count($keystr) ; $i++) {
    array_push($exp_query, "eng LIKE '%".$keystr[$i]."%'" );
}
if(count($exp_query) > 0){
    $sqlque .= " and ( ";
    $sqlque .= join(" and ", $exp_query);
    $sqlque .= " ) ";
}
echo $sqlque; // 쿼리문이 정상인지 확인


List of Articles
번호 제목 날짜 조회 수
80 stripcslashes — addcslashes()로 인용한 문자열을 되돌림 2016.12.23 20442
79 quotemeta 모든 메타 문자앞에 역슬래쉬를 붙인 문자열을 반환 2016.12.23 20461
78 stripslashes — 따옴표 처리한 문자열을 풉니다 2016.12.23 20486
77 문자열 치환하기 2015.04.14 20493
76 [PHP] 한글명 파일 다운로드받기 2014.03.26 20551
75 HTTP Protocol의 data method - GET / POST 2016.04.22 20637
74 PHP 소스 : 이미지 리사이즈, 섬네일 2014.03.26 20706
73 템플릿 관련 정보 2016.08.22 20732
72 array_slice 배열의 일부를 추출 2016.12.23 20775
» 검색어 처리 루틴 2015.04.14 20778
70 preg_match (정규표현식 매치를 수행합니다) 2016.12.23 20853
69 PHP error 메시지 출력 file 2015.04.14 20924
68 PHP switch 문 file 2015.04.14 20993
67 Ajax로 구연한 실시간 서버시간출력 file 2017.03.06 21031
66 RSSReader Class 제작 및 Reader 만들기 file 2016.08.22 21042
65 FPDF - PHP로 PDF 만들기 2014.02.27 21084
64 PHP continue 문 file 2015.04.14 21097
63 체크박스, post 로 넘기고 받아서 다시 체크하기, checkbox 2017.03.07 21131
62 POST값 통째로 인코딩하기 1 2015.04.06 21175
61 DB 내용을 화면에 출력(이중 for 문) 2015.04.14 21246
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved