지금 레벨6인 회원들만 볼수있는 게시판을 만들어서 사용중인데
회원수가 점점 많아지니 검색기능을 추가하여 사용하고 있었는데
원래 기존 회원아이디, 이름을 검색하여 해당 회원을 보여지게 하고있었습니다.
근데 혹시 이름초성이나 생년월일? 같은걸로도 불러오게 할수있는지 궁금합니다!
if($search_id){
$search = "and mb_id = '$search_id' or mb_name = '$search_id' ";
};
현재 위에 코드로 검색기능을 구현하고 있습니다!!
답변 2개 / 댓글 4개
채택된 답변
+20 포인트
// 초성은 대충 이렇게 하면 나오지 않을가 싶은데요
Copy
if($search_id){
$search = [];
$search[] = "mb_id = '$search_id'";
$search[] = "mb_name = '$search_id' ";
switch($search_id){
case'ㄱ':
$search[] = " (mb_name RLIKE '^(ㄱ|ㄲ)' OR ( mb_name >= '가' AND mb_name < '나' ))";
break;
case'ㄴ':
$search[] = " (mb_name RLIKE '^ㄴ' OR ( mb_name >= '나' AND mb_name < '다' ))";
break;
case'ㄷ':
$search[] = " (mb_name RLIKE '^(ㄷ|ㄸ)' OR ( mb_name >= '다' AND mb_name < '라' ))";
break;
case'ㄹ':
$search[] = " (mb_name RLIKE '^ㄹ' OR ( mb_name >= '라' AND mb_name < '마' ))";
break;
case'ㅁ':
$search[] = " (mb_name RLIKE '^ㅁ' OR ( mb_name >= '마' AND mb_name < '바' ))";
break;
case'ㅂ':
$search[] = " (mb_name RLIKE '^ㅂ' OR ( mb_name >= '바' AND mb_name < '사' ))";
break;
case'ㅅ':
$search[] = " (mb_name RLIKE '^(ㅅ|ㅆ)' OR ( mb_name >= '사' AND mb_name < '아' ))";
break;
case'ㅇ':
$search[] = " (mb_name RLIKE '^ㅇ' OR ( mb_name >= '아' AND mb_name < '자' ))";
break;
case'ㅈ':
$search[] = " (mb_name RLIKE '^(ㅈ|ㅉ)' OR ( mb_name >= '자' AND mb_name < '차' ))";
break;
case'ㅊ':
$search[] = " (mb_name RLIKE '^ㅊ' OR ( mb_name >= '차' AND mb_name < '카' ))";
break;
case'ㅋ':
$search[] = " (mb_name RLIKE '^ㅋ' OR ( mb_name >= '카' AND mb_name < '타' ))";
break;
case'ㅌ':
$search[] = " (mb_name RLIKE '^ㅌ' OR ( mb_name >= '타' AND mb_name < '파' ))";
break;
case'ㅍ':
$search[] = " (mb_name RLIKE '^ㅍ' OR ( mb_name >= '파' AND mb_name < '하' ))";
break;
case'ㅎ':
$search[] = " (mb_name RLIKE '^ㅎ' OR ( mb_name >= '하'))";
break;
}
$query = implode(" and ", $search);
};
답변에 대한 댓글 2개
$search = "and mb_id = '$search_id' or mb_name = '$search_id' ";
는
$search = "and (mb_id = '$search_id' or mb_name = '$search_id' )";
또는
$search = "and '$search_id' in ( mb_name , mb_id) ";
로 하셔야 합니다
답변을 작성하려면 로그인이 필요합니다.