2014-07-27 2 views
0

죄송합니다. 이미 답변 한 질문이 있지만 특정 설정을 찾을 수 없습니다.PHP 검색 mysql 데이터베이스

필자는 functions.php라는 파일을 가지고 있는데 여기에는 모든 기능과 데이터베이스를 준비하는 위치가 저장되어 있습니다. 내가 검색 기능을 만들고 싶어

function getUsers() 
{ 
     global $mysqli,$db_table_prefix; 
     $stmt = $mysqli->prepare("SELECT 
       id, 
       user_name, 
       FROM db_users"); 
     $stmt->execute(); 
     $stmt->bind_result($id, $user); 
     while ($stmt->fetch()){ 
       $row[] = array('id' => $id, 'user_name' => $user); 
     } 
     $stmt->close(); 
     return ($row); 
} 

, 내가 같은 옵션 값, 즉 값을 검색 할 수있는 양식 : id, user_name 다음과 같이 작은 예로들 수 있습니다.

functions.php를 가지고있어서 이미 mysql 데이터베이스에 연결을 설정하고 있습니다. '%searchrequest%'에 search.php를 사용하여 데이터베이스를 검색하려면 어떻게합니까?

아니면 다른 해결책을 제안 하시겠습니까?

+0

id & usename을 연결하고 옵션의 값으로 설정하십시오. 양식과 양식을 조합하여 필요에 따라 쿼리를 작성하십시오. –

답변

0

이러한 검색 값을 현재 기능에 전달하기 만하면됩니다. 아무 것도 전달되지 않으면 모든 데이터를 가져옵니다. 전달 된 값이 있으면 해당 값을 기준으로 필터링됩니다.

function getUsers($id="",$user_name="") 
{ 
     global $mysqli,$db_table_prefix; 

     $query = "SELECT 
       id, 
       user_name, 
       FROM db_users WHERE 1 = 1 "; 
     if(trim($id)) 
      $query .= " AND id = '".$id."'"; 

     if(trim($user_name)) 
      $query .= " AND user_name = '".$user_name."'"; 


     $stmt = $mysqli->prepare($query); 


     $stmt->execute(); 
     $stmt->bind_result($id, $user); 
     while ($stmt->fetch()){ 
       $row[] = array('id' => $id, 'user_name' => $user); 
     } 
     $stmt->close(); 
     return ($row); 
} 
+0

당신은 concatenating 대신에 다른 쿼리로 바꾸는 것이 아닙니까? – MikeWu

+0

이제 좋아 보인다. – MikeWu

+0

@MikeWu - 잘 지적했습니다! 나는 그런 장소를 잘못 입력하는 것을 싫어한다! – raidenace