Php SQL中的数学运算符不排除“;不适用;价值观
我使用下面的代码在数据库中搜索高于或低于特定列中输入值的条目之间切换Php SQL中的数学运算符不排除“;不适用;价值观,php,mysql,radio-button,Php,Mysql,Radio Button,我使用下面的代码在数据库中搜索高于或低于特定列中输入值的条目之间切换 if (isset($_POST["abovebelow"]) && $_POST["abovebelow"] == "Above"){ $operator = ">"; } elseif (isset($_POST["abovebelow"]) && $_POST["abovebelow"] == "Below"){ $operator = "<"; }
if (isset($_POST["abovebelow"]) && $_POST["abovebelow"] == "Above"){
$operator = ">";
}
elseif (isset($_POST["abovebelow"]) && $_POST["abovebelow"] == "Below"){
$operator = "<";
}
elseif (!isset($_POST["abovebelow"])){
$operator = "LIKE";
$value = "%";
}
$result = $mysqli->prepare("SELECT t.column FROM table t WHERE t.value".$operator." ( ? );");
$result->bind_param($value);
$result->execute();
if(isset($\u POST[“上下”])和&$\u POST[“上下”]=“上”){
$operator=“>”;
}
elseif(isset($_POST[“上下”])和&$_POST[“上下”]=“下”){
$operator=“您只需添加一个附加的WHERE
子句来过滤这些值。假设您的NA值存储为字符串('NA'
),您可以按如下方式过滤它们:
SELECT t.column FROM table t WHERE t.value<> 'NA' AND t.value".$operator." ( ? );
编辑:根据Steven的评论,第二种方法不太有效,请参见Steven自己的答案以了解正确的实施方法。我补充道,使用Jaco答案中的思想
$operator = "<> 'NA' and t.value >";
$operator=“'NA'和t.value>”;
对于每个操作符部分,而不是添加到查询中。这使上面和下面的部分都可以灵活地包含或不包含“NA”MySQL中如何存储NA
值?是否为NULL
?如果只需要不同的查询,可以将其移动到If语句中。NA值存储为“NA”“不为null。我无法将其放入if语句中,因为上面是一个简化版本。我有多个运算符和值,不想写入所有可能的组合。但NA值不会显示在未选中的情况下:(我添加了第二个查询,该查询将在未选中的情况下显示NA值。如果$operator
设置为LIKE
,它将忽略对NA的检查,这将在$result->bind\u param($value);部分上出现“调用非对象上的成员函数bind\u param()”错误)。
$operator = "<> 'NA' and t.value >";