쿼리 질문 입니다.

쿼리 질문 입니다.

QA

쿼리 질문 입니다.

답변 2

본문

검색 할 때 검색된 단어를 가지고 {$g5['member_table']} 테이블에 있는 전체 컬럼을 대상으로

검색하고자 합니다.

 

쿼리가 어떻게 될까요?

이 질문에 댓글 쓰기 :

답변 2

1. 검색어를 변수에 담는다

2. member테이블의 1개 Row를 가져온다

3. 검색의 where 에 대한 부분을 or조건으로 만들어야 하는데

    foreach로 key 값을 추출하여

        컬럼 like 검색어 형태로 where 의 or조건 검색어를 만든다

4. sql문을 확인 / (테스트) / 실행

---------------------


$search = $_REQUEST['search']; // 검색어
 
$sql = "select * from {$g5['member_table']} limit 1";
$row = sql_fetch($sql);
$where = " where 1=1 and ( ";
$chk = 0;
foreach($row as $key => $v) {
    if ($chk) $where .= " or ";
    $where .= " {$key} like '%{$search}%' ";
    $chk++;
}
$where .= " ) ";
$searchsql = "select * from {$g5['member_table']} {$where} ";
$result = sql_query($searchsql);
while ($rows = sql_fetch_array($result)) {
     // 검색결과 처리내용
}

 

이렇게 하면 되지 않을까 싶습니다만

중간에 쿼리 점검을 해보실필요는 있습니다.

왜냐면.. int값이나 float 형의 컬럼에 like 검색을 해봐야 정상적으로 처리가 안될것이라서요

전체컬럼이라는 전제하에 러프한 로직을 구현해봤습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #sql ×
전체 725
© SIRSOFT
현재 페이지 제일 처음으로