2016-12-16 1 views
0

선택할 수있는 다른 이름의 스크롤 목록이 있지만 아무 것도 선택하지 않으면 모든 항목을 선택해야합니다.Sql과 PHP가 설정되지 않은 경우

HTML :

<form action="" method="POST"> 
    <select name="names"> 
    <option selected disabled value="">Choose name</option> 
    <option value="name1">Name 1</option> 
    <option value="name2">Name 2</option> 
    </select> 
    <button type="submit" name="submit">OK</button> 
</form> 

PHP :

if(!isset($_POST['names'])) { 
*what to put here if i want all if not set* 
} 

는 SQL :

WHERE name = '"($_POST['names'].'" 
+0

이름 목록? 배열에 문자열로? –

+0

약간의 변경을했습니다 –

+0

어떻게'$ _POST [ 'names']'를 설정할 수 없습니까? 항상'name1' 또는'name2'입니다. – Barmar

답변

0

이 변수에 WHERE 절을 넣습니다. 이름이 없으면 비워 두십시오. 형태가 <select> 요소가있는 경우

if (isset($_POST['names'])) { 
    $where = "WHERE name = '" . $_POST['names'] . "'"; 
} else { 
    $where = ""; 
} 
$sql = "SELECT * FROM yourTable " . $where; 

그러나, 그 값은 항상 POST로 전송됩니다, 그래서 isset()은 항상 true가됩니다. 아마도 if (!empty($_POST['names']))을 확인해야합니다. 비어있는 기본 옵션이있는 경우이 옵션이 선택되어 있는지 테스트합니다.

+0

비어있는 필드가 있고 그렇지 않다면 아무런 행도 얻지 못하면 내가 선택한 필드를 검색하지 않는다. at –

+0

'isset()'또는'empty()'를 사용하고 있습니까? – Barmar

+0

선택하지 않으면 매개 변수가 빈 문자열로 설정되므로'isset()'이 true입니다. – Barmar

관련 문제