我要使用复选框进行搜索。当选中复选框时,此功能有效,但未选中时,不显示任何内容。我想在未选中此复选框时显示数据库中的所有数据
DECLARE @s varchar(max)
SET @s = 'INSERT INTO dbo.Table_1 EXEC ( ''' + replace(@mySQL, '''', '''''') + ''' ) AT Linked_Server_1'
EXEC( @s )
数据库中有一个名为“公民身份”的列,其列值为ENUM值“ Single”,“ Married”。
有2个已婚和单身复选框。当我选择已婚复选框时,仅显示已婚人员列表。当我选择一个人时,将显示一个人的唯一列表。同时选择两者时,将显示两个结果。但是,当两个选项都未选中时,我想向所有已婚和单身人士显示。
答案 0 :(得分:0)
您可能想使用一种方法来构建带有和不带有各种选项的sql。最简单的方法是将数组与implode()
一起使用:
$opts = [];
if(isset($_REQUEST['single']))
$opts[] = "civil_status = 'Single'";
if(isset($_REQUEST['married']))
$opts[] = "civil_status = 'Married'";
$sql = "SELECT * FROM {$users_table}";
if(!empty($opts))
$sql .= " WHERE (".implode(" OR ", $opts).")";
如果您没有选择任何内容,那么它将写:
SELECT * FROM {$users_table}
如果选择了一件事,它会写:
SELECT * FROM {$users_table} WHERE (civil_status = 'Married')
如果两者都选中:
SELECT * FROM {$users_table} WHERE (civil_status = 'Married' OR civil_status = 'Single')
答案 1 :(得分:0)
You need to attach your query on form submit :
$query = "SELECT * FROM `table_name'";
if(isset($_POST['single']))
$query .= "where 'relationship_status' = 'S' or";
if(isset($_POST['married']))
$query .= "where 'relationship_status' = 'M'";
如果还有更多条件,您可以附加上面的条件。
Manage the or and and accordingly according as per your requirement.