我目前正在从HTML选择中获取信息,它看起来像这样:
<select id = "select_something">
<option value = "All">All</option>
<option value = "First">Option 1</option>
<option value = "Second">Option 2</option>
<option value = "Third">Option 3</option>
</select>
我在 php 中的 sql 查询如下所示:
$query = "SELECT * FROM `table` WHERE `column` = '$something'";
如果选择了"全部",我可以输入哪个参数而不是$something以获得所有可能的结果?
如果选择了"全部",我不想创建不同的查询,也不想更改$query语句!我只对给出所有结果的 WHERE 操作的参数感兴趣(或者基本上你可以说它忽略了 where)。
提前感谢,雅 各。
编辑:找到的解决方案:
if ($something== "All") $something = 1;
else $something = "`column` = '$something'";
$query = "SELECT * FROM `table` WHERE $something;
感谢所有回复的人。
$query = "SELECT * FROM `table` WHERE `column` = '$something'" . (($something == "All") ? " OR 1 = 1" : "");
$query = "SELECT * FROM `table` WHERE 1";
但我也强烈建议阅读SQL注入和PDO。
<form method="POST">
<select id = "select_something">
<option value = "1">All</option>
<option value = "2">Option 1</option>
<option value = "3">Option 2</option>
<option value = "4">Option 3</option>
</select>
<input type="submit" name="Submit">
</form>
然后,我们通过以下方式处理您的 _POST 美元:
if (isset($_POST['select_something'])){
$Method = NULL;
switch ($_POST['select_something']){
case 1:
$Method = "All";
break;
case 2:
$Method = "Option1";
break;
case 3:
$Method = "Option2";
break;
case 4:
$Method = "Option3";
break;
}
$Query = "SELECT * FROM `table` WHERE `column`=".$Method;
}