특정필드 검색시 해당 필드만 완전일치 하는 검색어 출력
여분 필드로 검색을 하는데 1을 검색 하니 11~19까지 나와 버려서 삽질 좀 했습니다.
엄청 간단 한거였는데 삽질 했네요.
원하는 결과는 1을 검색하면 1만 나오게..
common.lib.php
line 585 부분
기존 소스
[code]
case "mb_id" :
case "wr_name" :
$str .= " $field[$k] = '$s[$i]' ";
break;
case "wr_hit" :
case "wr_good" :
case "wr_nogood" :
$str .= " $field[$k] >= '$s[$i]' ";
break;
// 번호는 해당 검색어에 -1 을 곱함
case "wr_num" :
$str .= "$field[$k] = ".((-1)*$s[$i]);
break;
case "wr_ip" :
case "wr_password" :
$str .= "1=0"; // 항상 거짓
break;
// LIKE 보다 INSTR 속도가 빠름
default :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
else
$str .= "INSTR($field[$k], '$search_str')";
break;
[/code]
수정
[code]
case "mb_id" :
case "wr_name" :
$str .= " $field[$k] = '$s[$i]' ";
break;
case "wr_hit" :
case "wr_good" :
case "wr_nogood" :
$str .= " $field[$k] >= '$s[$i]' ";
break;
// 번호는 해당 검색어에 -1 을 곱함
case "wr_num" :
$str .= "$field[$k] = ".((-1)*$s[$i]);
break;
case "wr_ip" :
case "wr_password" :
$str .= "1=0"; // 항상 거짓
break;
// LIKE 보다 INSTR 속도가 빠름
case "wr_25" :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "LOWER($field[$k]=LOWER('$search_str')";
else
$str .= "$field[$k]= '$search_str' ";
break;
default :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
else
$str .= "INSTR($field[$k], '$search_str')";
break;
[/code]
원하는 필드를 일치 검색 나오게 할려면 아래 소스 추가
[code]
case "wr_25" :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "LOWER($field[$k]=LOWER('$search_str')";
else
$str .= "$field[$k]= '$search_str' ";
break;
[/code]
분명히 알고 계신 분이 더 많겠지만
질답, 팁에 없는 내용 같아 올려 봅니다.
응용하면 특정 게시판 구분 지어서 쓸 수 있겠네요.
엄청 간단 한거였는데 삽질 했네요.
원하는 결과는 1을 검색하면 1만 나오게..
common.lib.php
line 585 부분
기존 소스
[code]
case "mb_id" :
case "wr_name" :
$str .= " $field[$k] = '$s[$i]' ";
break;
case "wr_hit" :
case "wr_good" :
case "wr_nogood" :
$str .= " $field[$k] >= '$s[$i]' ";
break;
// 번호는 해당 검색어에 -1 을 곱함
case "wr_num" :
$str .= "$field[$k] = ".((-1)*$s[$i]);
break;
case "wr_ip" :
case "wr_password" :
$str .= "1=0"; // 항상 거짓
break;
// LIKE 보다 INSTR 속도가 빠름
default :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
else
$str .= "INSTR($field[$k], '$search_str')";
break;
[/code]
수정
[code]
case "mb_id" :
case "wr_name" :
$str .= " $field[$k] = '$s[$i]' ";
break;
case "wr_hit" :
case "wr_good" :
case "wr_nogood" :
$str .= " $field[$k] >= '$s[$i]' ";
break;
// 번호는 해당 검색어에 -1 을 곱함
case "wr_num" :
$str .= "$field[$k] = ".((-1)*$s[$i]);
break;
case "wr_ip" :
case "wr_password" :
$str .= "1=0"; // 항상 거짓
break;
// LIKE 보다 INSTR 속도가 빠름
case "wr_25" :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "LOWER($field[$k]=LOWER('$search_str')";
else
$str .= "$field[$k]= '$search_str' ";
break;
default :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
else
$str .= "INSTR($field[$k], '$search_str')";
break;
[/code]
원하는 필드를 일치 검색 나오게 할려면 아래 소스 추가
[code]
case "wr_25" :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "LOWER($field[$k]=LOWER('$search_str')";
else
$str .= "$field[$k]= '$search_str' ";
break;
[/code]
분명히 알고 계신 분이 더 많겠지만
질답, 팁에 없는 내용 같아 올려 봅니다.
응용하면 특정 게시판 구분 지어서 쓸 수 있겠네요.
댓글 3개
12년 전
정말 좋은 정보네요 ~
추천드리고 갑니다 . ^^
추천드리고 갑니다 . ^^
스피드애드
12년 전
좋은정보 감사합니다~
takumi22
12년 전
수고하셨습니다.
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3129 | 12년 전 | 5174 | ||
| 3128 | 12년 전 | 7911 | ||
| 3127 | 12년 전 | 7062 | ||
| 3126 | 12년 전 | 4985 | ||
| 3125 | 12년 전 | 5869 | ||
| 3124 | 12년 전 | 5556 | ||
| 3123 | 12년 전 | 5924 | ||
| 3122 | 12년 전 | 6169 | ||
| 3121 | 12년 전 | 5518 | ||
| 3120 | 12년 전 | 5815 | ||
| 3119 | 12년 전 | 5238 | ||
| 3118 | 12년 전 | 4672 | ||
| 3117 | 12년 전 | 4447 | ||
| 3116 | 12년 전 | 7208 | ||
| 3115 | 12년 전 | 6030 | ||
| 3114 |
생각하는바보
|
12년 전 | 6411 | |
| 3113 |
|
12년 전 | 4822 | |
| 3112 |
|
12년 전 | 5207 | |
| 3111 |
|
12년 전 | 3640 | |
| 3110 |
|
12년 전 | 4081 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기