문제는 특정 검색 결과를 얻으려고하지만 필터링 된 결과가 아닌 모든 데이터베이스 행을 제공한다는 것입니다. 이걸 어떻게 피할 수 있니?PHP 다중 검색 쿼리가 모든 행을 반환합니다.
require_once 'db/connect.php';
if(isset($_GET['submit'])){
$doctor = $db->escape_string($_GET['doctor']);
$specialization = $db->escape_string($_GET['specialization']);
$hospital = $db->escape_string($_GET['hospital']);
$query = $db->query("
SELECT docname, specialization,hospital
From doctor
WHere docname Like '%{$doctor}%' or
specialization like '%{$specialization}%' or
hospital like '%{$hospital}%'
");
?>
<div class="result-count">
Found <?php echo $query->num_rows; ?> results.
</div>
<?php
if($query -> num_rows){
while($r = $query->fetch_object()){
?>
<div class="result-count">
<a href="#"><?php echo $r->docname; ?></a>
</div>
<?php
}
}
}
(!) 참고를 : 주어진 당신이 게시하고 실제 코드가 있다면, 당신은 당신이 조건문을 보강하는 방식으로 구문 분석 오류가되어야 하는지를. –
하나의 조건이 일치하면이 결과를 표시합니다. –
@ Fred-ii- i는 오류가 없지만 모든 데이터베이스 결과를 제공합니다. –