2013-04-27 2 views
0

데이터베이스의 사용자를 검색 할 수있는 검색 창을 만들었으며 아래 코드를 공유합니다. 그러나 한 가지 문제는 테이블에 5 명의 사용자가있는 경우이 5 명의 사용자를 표시하지만 1,000 명이 있으면 1,000 명이 모두 표시된다는 것입니다.PHP에서 즉석 검색의 결과를 제한 하시겠습니까?

제한하려고 시도했지만 작동하지 않았습니다. 때때로 그것은 PHP 스크립트를 완전히 죽입니다.

누구든지 해결 방법을 알고 있으며 아래 코드에서 검색 쿼리 당 5 개의 결과 만 표시되도록 제한 할 수 있습니까?

HTML 입력 및 AJAX 스크립트 :

<input id="text" type="text" name="text" onkeyup="showHint(this.value)" autocomplete="off" /> 
<div id="inner" class="inner"></div> 
<script> 
    function showHint(str) { 
    if (str.length==0) { 
     document.getElementById("inner").innerHTML="You haven't search. Please have :D"; 
     return; 
    } 
    if (window.XMLHttpRequest) { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     document.getElementById("inner").innerHTML=xmlhttp.responseText; 
     } 
    } 
    xmlhttp.open("REQUEST","searchquery.php?text="+str,true); 
    xmlhttp.send(); 
    } 
</script> 

과는을 searchquery.php :

<? 
    $text = $_REQUEST['text']; 
    $text = preg_replace('#[^a-z0-9]#i', '', $text); 
    function connect($database) { 
    mysql_connect('localhost','root',''); 
    mysql_select_db($database); 
    } 
    connect('developing'); 
    $query = "SELECT * FROM users WHERE first_name LIKE '%$text%' OR last_name LIKE '%$text%'"; 
    $action = mysql_query($query); 
    $result = mysql_num_rows($action); 
    if ($result == 0) { 
    $output = "User does not exist..."; 
    }else{ 
    while ($row = mysql_fetch_array($action)) { 
     $output .= '<div class="output"><img src="/'.$row['avatar'].'"><a href="#">'.$row['first_name'].' '.$row['last_name'].'</div><br />'; 
    } 
    } 
    echo $output; 
?> 

아무도 그 한계를 확인하는 방법에 대한 몇 가지 솔루션을 볼 수 있을까요? 귀하의 요청에

답변

4

사용 LIMIT :

SELECT * 
FROM users 
WHERE first_name LIKE '%$text%' 
OR last_name LIKE '%$text% 
LIMIT 5' 
+0

와 나는 여전히 작동 fouther 검색하면? 내 말은, 결과가 5 개 또는 테이블의 처음 5 개가 항상 보입니다. 미안 해요 난 단지 몇 가지 기본적인 comands을 알고 SQL 의사 아니에요 –

+0

당신은'매김'을보고 싶어합니다. Google과 함께하면 * 많은 * 자습서를 찾을 수 있습니다. 그것은 멋지지만 복잡하지 않습니다. –

+0

네 형제! 고마워요 : D –

관련 문제