Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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脚本_Php_Html - Fatal编程技术网

如果命令破坏了我的PHP脚本

如果命令破坏了我的PHP脚本,php,html,Php,Html,我真的不知道这里发生了什么 如果我将此作为我的代码: if($_POST['expOncology'] !="") { $varOnc = $_POST['expOncology']; if ($varOnc="min") { $sql_extra[] = "(exp_onc='minimal expertise' OR exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_on

我真的不知道这里发生了什么

如果我将此作为我的代码:

if($_POST['expOncology'] !="") {
    $varOnc = $_POST['expOncology'];

    if ($varOnc="min") {
        $sql_extra[] = "(exp_onc='minimal expertise' OR exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc="some") {
        $sql_extra[] = "(exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc="high") {
        $sql_extra[] = "(exp_onc='high level of expertise' OR exp_onc='expert')";
    }
}
它工作良好,并显示了正确的结果

但是,如果我再添加一个if块,使其成为:

if($_POST['expOncology'] !="") {
    $varOnc = $_POST['expOncology'];

    if ($varOnc="min") {
        $sql_extra[] = "(exp_onc='minimal expertise' OR exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc="some") {
        $sql_extra[] = "(exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc="high") {
        $sql_extra[] = "(exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc="expert") {
        $sql_extra[] = "(exp_onc='expert')";
    }
}

即使我没有从下拉列表中选择“专家”,它也不会像预期的那样工作。如果ExponLogic没有设置为expert,那么该代码难道不应该运行吗?如果我不满足代码运行的条件,为什么还要影响代码?

$varOnc=“something”
这样的条件将始终返回
true

您应该使用
=
==
(如果您想检查数据类型)。 您的代码应该如下所示

if($_POST['expOncology'] != "") {
    $varOnc = $_POST['expOncology'];

    if ($varOnc == "min") {
        $sql_extra[] = "(exp_onc='minimal expertise' OR exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc == "some") {
        $sql_extra[] = "(exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc == "high") {
        $sql_extra[] = "(exp_onc='high level of expertise' OR exp_onc='expert')";
    }

    if ($varOnc == "expert") {
        $sql_extra[] = "(exp_onc='expert')";
    }
}
试一试


with==比较好;)

这个
$varOnc=“min”
没有比较..我不知道,从什么时候开始使用单个
=
进行比较?!?!?!请参阅当前满足的所有条件。你可能是说SQL后来失败了吗?这很奇怪,在此之前,我不小心在每一次比较中都使用了single=,而且效果很好。。。
if($_POST['expOncology'] !="") {
  $varOnc = $_POST['expOncology'];
  if ($varOnc=="min"){
    $sql_extra[] = "(exp_onc='minimal expertise' OR exp_onc='some     expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
   }
  if ($varOnc=="some"){
    $sql_extra[] = "(exp_onc='some expertise' OR exp_onc='high level of expertise' OR exp_onc='expert')";
  }
 if ($varOnc=="high"){
    $sql_extra[] = "(exp_onc='high level of expertise' OR exp_onc='expert')";
 }
}