테스트 사이트 - 개발 중인 베타 버전입니다

쿼리 질문 입니다. 채택완료

웹프리죤 4년 전 조회 2,405

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

검색하고자 합니다.

 

쿼리가 어떻게 될까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
4년 전

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

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

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

    foreach로 key 값을 추출하여

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

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

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

</p>

<p>$search = $_REQUEST['search']; // 검색어</p>

<p> </p>

<p>$sql = "select * from {$g5['member_table']} limit 1";</p>

<p>$row = sql_fetch($sql);</p>

<p>$where = " where 1=1 and ( ";</p>

<p>$chk = 0;</p>

<p>foreach($row as $key => $v) {</p>

<p>    if ($chk) $where .= " or ";</p>

<p>    $where .= " {$key} like '%{$search}%' ";</p>

<p>    $chk++;</p>

<p>}</p>

<p>$where .= " ) ";</p>

<p>$searchsql = "select * from {$g5['member_table']} {$where} ";</p>

<p>$result = sql_query($searchsql);</p>

<p>while ($rows = sql_fetch_array($result)) {</p>

<p>     // 검색결과 처리내용</p>

<p>}</p>

<p>

 

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

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

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

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

와 ..감사합니다 플래토님 짱입니다^^

늘 도움 주셔서..

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인