2014-02-17 1 views
0

검색 기능을 만들었습니다. 전체 텍스트를 통해 주소를 찾을 수 있지만 주소의 일부로 검색어를 검색하려면 어떻게해야합니까? 예 : 전체 주소는 paya lebar Road Blk27입니다. 사용자가 paya을 입력하면 계속 나타나게 할 수 있습니다.전체 텍스트 대신 부분 문자열의 쿼리 찾기

SearchForm

<h2>View Patient Records</h2> 


<body> 
<form action="display_patient.php" method="post"> 
<p>Select: 
<select name="patient_var" > 
<?php 
$value = array(view_all, name, address); 
foreach ($value as $option) 
{ 
    echo '<option value="'.$option.'"' . (isset($_POST['patient_var']) && $_POST['patient_var'] == $option ? ' selected' : '') . '>' . $option . '</option>'; 
} 

?> 
</select> 

<input type="text" name="typed" value="" /> 

<input type ="submit" value="submit" /> 
</form> 
</p> 

<p> 

<?php 
if (isset($_POST['patient_var'])) { 

    $type = $_POST['typed']; 
    $select = $_POST['patient_var']; 
if ($select == 'view_all') { 
    echo "<table border='1'>"; 
echo "<tr>\n"; 
echo "<th>ID</th>\n"; 
echo "<th>Patient Name</th>\n"; 
echo "<th>Age</th>\n"; 
echo "<th>NRIC</th>\n"; 
echo "<th>Birth Date</th>\n"; 
echo "<th>Medical Allergies</th>\n"; 
echo "<th>Medical History</th>\n"; 
echo "<th>Phone</th>\n"; 
echo "<th>Address</th>\n"; 
echo "<th>Doctor Assigned</th>\n"; 
echo "</tr>"; 

    $pat_set = default_patient(); 

    while ($mo = mysqli_fetch_array($pat_set)) { 
       echo "<tr>"; 
echo "<td>" . $mo['id'] . "</td>"; 
echo "<td>". $mo['name'] . "</td>"; 
    echo "<td>". $mo['age'] . "</td>"; 
    echo "<td>". $mo['nric'] . "</td>"; 
    echo "<td>". $mo['birthdate'] . "</td>"; 
    echo "<td>". $mo['medical_allergies'] . "</td>"; 
     echo "<td>". $mo['medical_history'] . "</td>"; 
     echo "<td>". $mo['phone'] . "</td>";  
echo "<td>". $mo['address'] ."</td>"; 
     echo "<td>". $mo['doctor_assigned'] . "</td>"; 
echo "</tr>"; 
      } 
} 




else { 
    echo "<table border='1'>\n"; 
echo "<tr>\n"; 
echo "<th>ID</th>\n"; 
echo "<th>Patient Name</th>\n"; 
echo "<th>Age</th>\n"; 
echo "<th>NRIC</th>\n"; 
echo "<th>Birth Date</th>\n"; 
echo "<th>Medical Allergies</th>\n"; 
echo "<th>Medical History</th>\n"; 
echo "<th>Phone</th>\n"; 
echo "<th>Address</th>\n"; 
echo "<th>Doctor Assigned</th>\n"; 
echo "</tr>"; 

    $patients_set = 
find_patients($select, $type); 

while ($row = mysqli_fetch_array($patients_set)) 
{ echo "<tr>"; 
echo "<td>" . $row['id'] . "</td>"; 
echo "<td>". $row['name'] . "</td>"; 
    echo "<td>". $row['age'] . "</td>"; 
    echo "<td>". $row['nric'] . "</td>"; 
    echo "<td>". $row['birthdate'] . "</td>"; 
    echo "<td>". $row['medical_allergies'] . "</td>"; 
     echo "<td>". $row['medical_history'] . "</td>"; 
     echo "<td>". $row['phone'] . "</td>";  
echo "<td>". $row['address'] ."</td>"; 
     echo "<td>". $row['doctor_assigned'] . "</td>"; 
echo "</tr>"; } 

} 

}//end of if post submit 

?> 
</p> 
열이 특정 문자열이 사용되었는지 여부를 검색하기위한 MySQL은
+2

SQL 쿼리에서'LIKE %% '를 사용하십시오. – krishna

답변

1

LIKE

SELECT * FROM table WHERE column LIKE '%somestring%'; 
($ 유형을 선택 $) find_patients; 귀하의 경우

그냥이

$typed = $_POST['typed']; 

을 시도하고 당신은 당신의 기능을 게시하는 것을 잊었다이

$query = "select * from table where Address LIKE '%".$typed."%' "; 
1

사용 LIKE '%$searchParam%' 대신 = $searchParam

0

같은 MySQL의 쿼리를 만들

select * from MyTable where myColumn like '%myPartialString%'; 

이 유형의 쿼리 내에서 "MyPartialString"이 모든 행을 반환합니다 는하지만이 같은 형태의 주소 VARCHAR 필드에 대한 부분 문자열 쿼리를해야 할 것 같아요.

관련 문제