条件不是为变量赋值


condition is not assigning value to the variable

如果条件满足,我会尝试将值分配给变量。但是,php仍然没有设置值。我做错了什么?

这是我的php代码:

if(isset($_POST['submit'])) {
    if (isset($_POST['unit'])) {
    $unit = $_POST['unit'];
    $query = search_by_unit($table, $unit);
    }
} else if(!isset($_POST['submit'])){
     $query = select_all($table);
}
$result = mysqli_query($connection, $query);

当我在设置单元控制后提交表单时,它仍然运行全选功能。

以下是功能:

function select_all($table_name){
      return "SELECT * FROM {$table_name}";
 }
function search_by_unit($table_name,$unit){
      return "SELECT * FROM {$table_name} WHERE unit = '{$unit}'";
 }

检查提交按钮值根本不是一个好的做法。您必须直接检查form Posted值,因此代码应该如下所示:-

if (isset($_POST['unit'])){
    $unit = $_POST['unit'];
    $query = search_by_unit($table, $unit);
}else{
    $query = select_all($table);
}

您所做的检查似乎比实际需要或可能想要的要多。我会把这个代码简化为:

if (isset($_POST['unit'])) {
    $unit = $_POST['unit'];
    $query = search_by_unit($table, $unit);
}
else {
    $query = select_all($table);
}

这样,如果设置了$_POST['submit'],但没有设置$_POST['unit'],那么$query仍然有一个值。