Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL中的数学运算符不排除“;不适用;价值观_Php_Mysql_Radio Button - Fatal编程技术网

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 >";