2016-08-14 5 views
-3

안녕하세요. 내 웹 사이트에서 검색 상자를 만들고 싶습니다. 모든 작업을 수행했지만 3 개의 검색 상자가 있고 1 번째 사이트가 두 번째 위치이고 위치가 2임을 알기를 원합니다. 세 번째 유형입니다. 그것은 사용자가 모든 3 개의 상자에서 무언가를 선택할 때 작동하지만 사용자가 하나 이상의 상자에서 ALL을 선택할 때 사용할 SQL 쿼리를 알고 싶습니다. 예 -이 내가이 내가SQL 얻는 방법 = "all"

$sql = "SELECT * FROM employe WHERE date='ALL' AND reason='ALL' AND month='$month' "; 
    $result = mysqli_query($conn, $sql); 

이 거기 $ 날짜를해야 싶지만 그냥 그렇게 너희들이 내가 원하는 것을 이해 할 수있는 모든 작성한 설명하는 것입니다

$sql = "SELECT * FROM employe WHERE date=$date AND reason='$reason' AND month='$month' "; 
    $result = mysqli_query($conn, $sql); 

하고있는 무슨이다

+0

사용자가 ** 모든 ** 레코드를 검색 할 수있게하려면 아무런 필터링도하지 않으므로 'reason ='$ reason''을 제거하면됩니다. 쿼리에서 ('$ reason == 'ALL'이면). – Dekel

+0

난 경우 예 그래서 작동 <선택 클래스 = "폼 컨트롤"ID = "SEL1을"> <옵션 값 = "*"> 모든

+0

사용자가 첫 번째 상자 또는 두 번째 상자 또는 세 번째 상자 또는 두 개의 상자 또는 상자 또는 모든 상자를 모두 선택할 확률이 있기 때문에 $ reason == 'ALL'을 사용하면 여러 쿼리를 실행해야합니다. –

답변

-1

조건 문자열을 작성하고 SQL 문에 사용하십시오. like

if($date=='ALL' or $date==''){ 
    $datecond=''; 
} 
else{ 
$datecond = " and date='$date' "; 
} 
if($reason=='ALL' or $reason==''){ 
$reasoncond=''; 
} 
else{ 
$reasoncond=" and reason='$reason'"; 
} 
if($month=='ALL' or $month==''){ 
$monthcond = ''; 
} 
else{ 
$monthcond = " and month='$month'"; 
} 
$sql = "select * from employee where 1 $datecond $reasoncond $monthcond";