2013-09-06 3 views
0

양식을 기반으로 적절한 쿼리를 작성하는 방법을 알아 내려고 노력하고 있습니다. 모든 양식 값을 설정해야 할 때 쿼리를 작성하는 방법을 알고 있지만 양식에 선택적 값이 있으며 ' 이 작업을 수행하는 방법을 실제로 파악하지 못합니다. 3 & 4는 선택 사항이며 기본값은 "어떤"반면,양식 선택을 기반으로 적절한 쿼리를 작성하려면 어떻게합니까?

<select name="1" id="1"> 
    <option>Select Value</option> 
    <option value="rent">rent</option> 
    <option value="buy">buy</option> 
</select> 

<select name="2" id="2"> 
    <option>Select Value</option> 
    <option value="house">house</option> 
    <option value="flat">flat</option> 
</select> 

<select name="3" id="3"> 
    <option>Swimming pool</option> 
    <option value="any">any</option> 
    <option value="yes">yes</option> 
    <option value="no">no</option> 
</select> 

<select name="4" id="4"> 
    <option>Furniture</option> 
    <option value="any">any</option> 
    <option value="yes">yes</option> 
    <option value="no">no</option> 
</select> 

선택 1 & 2가 필요합니다

은 이제 내 양식 4 선택을 가지고 있다고 가정 해 봅시다.

내 양식 제출 양식은 다음과 같습니다. 1 = rent | 2 = 집 | 3 = 임의 | 4 = 임의

올바른 SELECT 쿼리는 어떻게 생겼을까요?

는 지금까지 시도 :

변수에 $ _POST 값을 퍼팅 후 값이 "어떤"이했다,는 IF와 함께 확인 :

if($swimming_pool == 'any') { $swimming_pool = "? OR 1=1"; }

그래서를 최종 쿼리를 확실하지 작동하지 않았다

select id from listings WHERE swimming_pool='$swimming_pool'

처럼 보였다 것아무것도 선택해야합니까?

나는 다른 질문에서 그것을 골랐다.

+1

지금까지 해보신 것은 무엇입니까? – undone

+0

$ _POST 값을 변수에 넣고 IF로 검사를 시도했습니다. 값이 "any"이면 다음을 수행했습니다. if ($ swimming_pool == 'any') {$ swimming_pool = "? OR 1 = 1"; }'최종 질의는'리스팅에서 ID를 찾았을 것입니다. WHERE swimming_pool = '$ swimming_pool ''은 효과가 없었고'? OR 1 = 1'은 무엇인가를 선택해야합니까? 나는 다른 질문으로 그것을 골랐다. –

+0

질문을 편집하고 PHP 코드를 입력하십시오! – undone

답변

1

'any'를 입력하면 검색어에서 완전히 제외하고 싶습니다. 기본적으로 쿼리 스트링을 데이터베이스에 전달하기 전에 동적으로 빌드하십시오. 이런 식으로 뭔가 (모든 데이터를 가정하면 이미 데이터베이스 쿼리에 사용하기 위해 정리 한) :

$where = '1 = 1' 

[...] 

if ($swimmingpool != 'any') 
    $where .= " and swimming_pool = '$swimmingpool'"; 

if ($furniture != 'any') 
    $where .= " and furniture = '$furniture'"; 

$querystring = "SELECT * FROM some_table WHERE $where ORDER BY whatever"; 
// Then pass $querystring when querying the database 

당신이 다음 동적 배열로 where 절을 통과 할 수 있어야 할 PDO를 사용하는 경우, 그러나이 볼을 굴리는 데 도움이되는 간단한 예제 일뿐입니다.

+0

대단히 고맙습니다. –

관련 문제