2012-06-24 4 views
1

내 검색 스크립트에 대한 도움을 받고 싶습니다. 사이트에 대해 조금 : 사용자를 등록하고 등록 할 때 사용자 유형 (즉, Nanny, Homecare, Daycare)을 선택합니다. 지금 나는 수색 막대기가 있고 방문자는 그들의 우편 번호를 입력 할 수 있고 결과 페이지는 그 우편 번호를 가진 데이타베이스에있는 모두를 보여준다. 현재 형태 :검색 및 결과 페이지

<form id="form1" name="form1" method="get" action="results.php"> 
    <p> 
     <label>Search for<input type="text" name="Search" id="Search" /></label> 
     <label> 
     <select name="Field" id="Field"> 
      <option value="Zip">Zip</option> 
     </select> 
     </label> 
     <input type="submit" name="button" id="button" value="Search" /> 
    </p> 

내가 뭘하고 싶은 사용자가 자신의 우편 번호를 입력하고 드롭 다운에서 보모, 홈 케어, 또는 데이 케어를 선택하고 결과를 해당 유형을 보여줍니다 곳을하는 것입니다 검색 결과에서 그 우편 내의 모든 것을 검색합니다.

어떻게 양식을보고 싶지 :

<form id="form1" name="form1" method="get" action="results.php"> 
    <p> 
     <label>Search for<input type="text" name="Search" id="Search" value="Zip" /></label> 
     <label> 
     <select name="Field" id="Field"> 
      <option value="Nanny">Nanny</option> 
      <option value="Homecare">Homecare</option> 
      <option value="Childcare">Childcare</option> 
     </select> 
     </label> 
     <input type="submit" name="button" id="button" value="Search" /> 
    </p> 
</form> 

PHP는 : 나는 PHP를 변경하려면 어떻게

<?php 
require_once('scripts/_config.php'); 
if(isset($_GET['Field'])){ 
$searchQ1=mysql_query("SELECT `First_Name`,`Last_Name`,`Nanny`,`Homecare`,`Childcare`,`City`,`State`,`Zip`,`userID` FROM `sys_profile` WHERE `".$_GET['Field']."` LIKE '".$_GET['Search']."';"); 
}else{ 
$searchQ1=mysql_query("SELECT `First_Name`,`Last_Name`,`Nanny`,`Homecare`,`Childcare`,`City`,`State`,`Zip`,`userID` FROM `sys_profile` WHERE `userID`!=0;"); 
} 
?> 

있도록 입력 한 우편 내 검색 결과 만 표시 유모, 육아 입력 된 우편 번호 등? 지금 PHP는 그 모든 것을 보여 주며 두 번째 예제로 양식을 변경하면 검색 쿼리를 조정하는 방법을 모르므로 여전히 작동하지 않습니다.

+0

데이터 모델에 오류가 있다고 생각합니다. 테이블은 어떻게 생겼지? 어떤 필드가 있습니까? –

+0

나는 그것이 생산 코드가 아니길 바란다. ... –

+0

아주 쉽게 jquery를 사용하여 이것을 할 수있다 .. PHP의 동적 드롭 다운 ... http://www.coremediadesign.co.uk/learn_web_design/free_web_design_tutorials/tutorial/array_drop_down_menu_php .html – sree

답변

0

쿼리 내에 AND과 함께 두 번째 제약 조건을 포함해야합니다. $_GET['Search']에 포함 된 Zip을 DB의 Zip 파일과 비교하고 선택한 값이 db의 사용자 유형이있는 드롭 다운을 구성하는지 확인합니다.

DB의 모양은 어떻습니까? 특히, 사용자 유형 정보는 어떻게 저장됩니까? 귀하의 게시 된 쿼리에서 추측, 이들은 부울 값 (보모, Homecare, 보육)입니까?

편집 : 보모, 홈 케어 및 육아 부울 값이있는 경우, 가능한 쿼리는 다음과 같습니다 [압축 검색 문자열에 일치하는 경우

$sql = "SELECT First_Name,Last_Name, City, State, userID FROM sys_profile WHERE Zip = " . $_GET['Search'] . " AND $_GET['Field'] = true"; 

그래서 당신이 확인하고 항목 아래로 선택한 드롭 값이있는 경우 참된.

+0

예 Nanny, Homecare 및 Childcare는 부울 값입니다. 등록 된 사용자가 프로파일을 작성할 때, 등록 된 사용자가 프로파일을 표시합니다. 각 필드는 데이터베이스의 필드로, 선택되면 1로 바뀝니다. –

+0

나는 당신이 말하는 것을 이해합니다.나는 그것을 쓰는 방법을 모른다. –

+0

[PHP에서 SQL 주입을 방지하는 가장 좋은 방법은 (http://stackoverflow.com/q/60174/911182는) !!!!!!!! 근무 – Herbert