2016-12-16 16 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句を入れてください。名前がない場合は空にします。

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

しかし、フォームは<select>要素を有する場合、その値は常にPOSTで送信されるので、isset()は常に真であろう。おそらくあなたはif (!empty($_POST['names']))をチェックしているはずです。空のデフォルトオプションがある場合は、そのオプションが選択されているかどうかがテストされます。

+0

空であるフィールドがあり、それ以外のフィールドがある場合は、名前を指定してフィールドを検索します。すべて –

+0

'isset()'または 'empty()'を使っていますか? – Barmar

+0

選択しない場合、パラメータは空の文字列に設定されます。したがって、 'isset()'は真です。 – Barmar