2012-07-12 2 views
-3

위치, 도시, 최소 가격, 최대 가격 등 사용자가 데이터베이스를 검색 할 수있는 양식을 만듭니다.여러 쿼리 WHERE 문을 추가하는 방법

"기본"select 문이 있습니다 : SELECT * FROM table.

검색 양식에는 사용자가 검색하려는 항목에 따라 값이 있거나 없을 수있는 여러 텍스트 상자와 드롭 다운이 있습니다.

SQL 문에 WHERE 절을 추가하는 방법을 알아내는 데 어려움이 있습니다 (사용자의 선택에 따라 특정 테이블 열에 사용할 값이 있거나 없을 수 있음).

누구에게 도움을 주셔서 감사합니다.

+1

당신은 몇 가지 코드를 보일 수 있는가? 너 뭐 해봤 니? – jcho360

+0

'할 수도 있고하지 않을 수도 있습니다. select *를 사용하십시오. –

답변

3

SQL을 생성하는 코드에서 사용자가 입력 한 필드를 확인하고 사용자가 더 많은 입력을 찾으면 더 많은 검사를 쿼리에 추가합니다. PHP의 간단한 예제 :

$sql = "SELECT * FROM table"; 
$where_checks = array(); 

if (isset($_POST['city'])) 
    $where_checks[] = "city = '{$_POST['city']}'"; 
if (isset($_POST['location'])) 
    $where_checks[] = "location = '{$_POST['location']}'"; 

// Add more stuff here 

if (count($where_checks) > 0) 
    $sql .= " WHERE " . implode('AND', $where_checks); 

// run query 

나는 예제를 단순하게 유지하기 위해 의도적으로 포스트 입력의 위생/탈출을 생략했습니다. 하지만 분명히 은 입력을 위생 처리해야합니다..

WHERE 앞에 여분의 공간이 있으면 쿼리가 중단됩니다.

+0

의미심장 한, SilverSnake. 사용자의 항목을 정리하는 것에 대해 상기시켜 주셔서 감사합니다. 감사! – marky

+0

@eventide 물론! 그리고 어리석은 코드 실수를 고쳐 주신 Lex에게 감사드립니다. :) – SilverSnake

관련 문제