Php 需要在isset上解释$U GET吗

Php 需要在isset上解释$U GET吗,php,mysql,get,isset,Php,Mysql,Get,Isset,我在这里努力理解isset逻辑测试的逻辑。这实际上是一个练习的答案 所以这一部分: if(isset($_GET['status']) && in_array($_GET['status'], $options)){ $sql .= " WHERE status = ?"; $execute = array($_GET['status']); } 如果答案是//inline,我将不胜感激,非常感谢 1.)我知道我们正在尝试查看status是否不为null,但为什么$op

我在这里努力理解isset逻辑测试的逻辑。这实际上是一个练习的答案

所以这一部分:

if(isset($_GET['status']) && in_array($_GET['status'], $options)){
  $sql .= " WHERE status = ?";
  $execute = array($_GET['status']);
}
如果答案是//inline,我将不胜感激,非常感谢

1.)我知道我们正在尝试查看status是否不为null,但为什么$options也有两次

2.)为什么要拆分$sql?为什么不将$sql与“WHERE status=?”一起从if中删除呢

PHP页面的其余部分如下所示:


练习解决方案1
员工名单



我很确定您在这里丢失了一个函数,可能是数组中的

in_array($_GET['status'], $options)

$options
将包含
status
可能具有的所有有效可能值

我很确定您在这里缺少一个函数,可能是数组中的

in_array($_GET['status'], $options)

$options
将包含
status
可能具有的所有有效可能值

它使
where
子句有条件。如果未设置该特定查询参数,则查询只需
选择所有内容
。否则它将变成
只选择一条特定记录

它使
where
子句有条件。如果未设置该特定查询参数,则查询只需
选择所有内容
。否则它会变成
只选择一条特定记录

@FuzzyTree:不,它不会。这是一个彻头彻尾的语法错误。我猜它应该是
isset()
,因为你永远无法确定你从客户那里得到的数据是什么,你必须首先检查你期望的数据是否真的被发送了:
if(isset($\u get['status'))
,只有这样你才能真正使用它。我在那里也有一个错误,这就是为什么我在这里完全困惑的原因,这是我们的练习答案。@FuzzyTree:不,不是。这是一个彻头彻尾的语法错误。我猜它应该是
isset()
,因为你永远无法确定你从客户那里得到的数据是什么,你必须首先检查你期望的数据是否真的被发送了:
if(isset($\u get['status'))
,只有这样你才能真正使用它。我在那里也有一个错误,这就是为什么我在这里完全困惑的原因,这是我们练习题的答案,绝对正确。但问题依然存在。。。谢谢。@erezT状态根据选项进行验证,可能是为了防止用户将状态设置为“不允许”并选择“不允许”的数据。绝对,修复它。但问题依然存在。。。谢谢。@erezT状态根据选项进行验证,可能是为了防止用户将状态设置为不允许的状态并选择不允许的数据