2012-06-05 1 views
0

나는 테이블을 불렀다 광고에 있으며 다음이 포함PHP는 세 개의 드롭 다운 필터

  • ID
  • 제목
  • 설명
  • 이 CITY_ID STATE_ID
  • CAT_ID

T 그의 데이터베이스에서 동적으로 채워집니다.

<form name="theForm" method="post" action="advanced_search.php"> 
    <input type="submit" name="Submit" value="Search" /> 
    <select name="categories" > 
     <option value=""> Select Category</option> 
    </select> 
    <select name="state" > 
     <option value=""> Select state</option> 
    </select> 
    <select name="city" > 
     <option value=""> Select city</option> 
    </select> 
    ... 

카테고리를 선택하고 검색을 클릭하면 해당 카테고리의 결과가 표시됩니다. 카테고리와 상태를 선택하면 지정된 카테고리와 상태로 필터링됩니다. 도시가 선택 될 경우에도 마찬가지입니다.

EX : 미니애폴리스 시내에서 취업 범주를 선택한 경우 해당 도시의 모든 고용에 대한 검색이 필터링되어야합니다.

코드를 사용하여 필터를 작동 시키려면 모든 드롭 다운을 선택해야합니다. 특정 상태의 모든 카테고리 결과를 표시하려면 어떻게해야합니까? 범주 별로만 필터링하고 싶습니다.

if (isset($_POST['Submit'])) { 
    $state = $_POST['state']; 
    $city = $_POST['city']; 
    $categories = $_POST['categories']; 

    $select = "SELECT * FROM classifieds"; 
    $where = " WHERE (authorized = '1')"; 

    $where .= " AND (cat = '" . $categories . "' AND state_id = '" . $state . "' AND city_id = '" . $city . "')"; 

    $where .= " AND (state_id = '" . $state . "')"; 
    $where .= " AND (city_id = '" . $city . "')"; 
    $q = $select . $where . ' ORDER BY date DESC'; 

다른 사람이 나를 따라 걸을 수 있습니까? 그들이 뭔가 선택한 경우

+1

는 "연습"에 대한 요구를; 현재 진행중인 특정 문제에 대한 질문에 집중할 수 있습니까? –

답변

2

만 곳의 절을 추가 : 스택 오버플로에 적합하지 않은

$select = "SELECT * FROM classifieds"; 
$where = " WHERE (authorized = '1')"; 
if($categories) { 
    $where .= " AND (cat = '" . $categories . "')"; 
} 
if($state) { 
    $where .= " AND (state_id = '" . $state . "')"; 
} 
if($city) { 
    $where .= " AND (city_id = '" . $city . "')"; 
} 
$q = $select . $where . ' ORDER BY date DESC'; 
+0

아직도 작동하지 않습니다 – Rocks

+0

'$ where. = "AND (cat = '". $ categories. "'AND state_id = '". $ state. "'AND city_id = '". $ city. "') "; –

+0

나는 내 대답을 편집하여 쿼리를 생성하는 완전한 코드를 제공했다. –

관련 문제