2015-01-08 1 views
-1

이것은 내 검색 코드입니다. 작동하지만 인쇄 할 때 아무 문자도 입력하지 않아도됩니다. 그것은 여전히 ​​검색합니다. 최악의 경우 데이터베이스에서 데이터베이스의 모든 항목을 인쇄합니다. 감사.PHP는 모든 문자를 입력하지 않고 모든 항목을 인쇄합니다.

if(isset($_GET['search'])) { 

$search_value= $_GET['searchbox']; 



//$sql="SELECT idemp,sn FROM employee 
//WHERE idemp like '%$search_value%' OR 
//sn like '%$search_value%'"; 

$sql = "select * from employee where (id_no like '%$search_value%' OR sn like '%$search_value%')"; 

$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    echo "'$result->num_rows' result/s for '$search_value'"; 
print "<br><br>"; 
+2

if (isset ($ _GET [ 'search']) &&! empty {$ do find ...}) {... do search ...} else { ; }' – Darren

+0

SQL 인젝션에주의하십시오. 항상'$ _GET' (또한'$ _POST' /'$ _REQUEST')의 입력을 이스케이프 처리하십시오. – Raptor

+1

플러스 새 게시물을 게시하기 전에 답변을 수락하십시오. –

답변

0

찾고있는 조건, 때만 쿼리를 실행 너는 뭔가있어.

if(isset($_GET['searchbox']) && $_GET['searchbox'] != ''){ 
    $search_value= $_GET['searchbox']; 
    $sql = "select * from employee where (id_no like '%$search_value%' OR sn like '%$search_value%')"; 

    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
    echo "'$result->num_rows' result/s for '$search_value'"; 
    print "<br><br>"; 
} 
+0

여전히 모두 인쇄 –

+0

감사합니다 감사합니다 –

+0

그것이 당신을 위해 작동한다면 친절하게 대답을 받아들입니다 :) –

0

if (isset ($ _ GET [ 'search']))는 빈 문자열로 설정되어 있기 때문에 true를 반환합니다.

if(isset($_GET['search']) && $_GET['search']) 

당신은 당신의 모든 문자열을 얻거나하지

if(isset($_GET['search']) && !empty($_GET['searchbox'])){ 
// do search 
} 
0

먼저 확인 귀하의 경우 조건을 변경해야 할 수도 있습니다 당신이

관련 문제