未定义的索引/行错误

时间:2013-06-09 23:41:51

标签: php indexing undefined

在学习了如何修复我的大多数未定义的索引错误之后,在一天结束时我遇到了一些奇怪的错误,我无法用isset修复(或者至少在我尝试时没有)。

第一个是这种类型的错误 注意:未定义的索引:第4行的C:\ wamp \ www \ forums \ includes \ topic.php中的页面 在第4行:

 $page = ($_GET['page'] || $_GET['page'] < 0) ? "1" : $_GET['page'];

我尝试在开头添加一个isset,并且非常混淆在哪里添加)。我添加了它,每次它仍然是一个错误,所以我现在想也许我不想使用isset?毫无头绪。

现在是最后一个 注意:未定义的变量:第65行的C:\ wamp \ www \ forums \ index.php中的行 在第65行:

 $sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$row['admin']."+1";

我觉得在我知道如何解决这些错误后,我将能够修复大多数未定义的索引错误。如果有人能引导我走向正确的方向,我将不得不承担责任。

3 个答案:

答案 0 :(得分:1)

你应该检查$_GET['page']的isset,如果没有找到或者&lt; 1声明为1

 $page = (!isset($_GET['page']) || $_GET['page'] < 0) ? "1" : $_GET['page'];

关于您的第二个错误,您在范围admin中调用的变量中必定存在错误。检查您选择此列的查询

答案 1 :(得分:1)

未定义的索引意味着您尝试访问的数组元素不存在。例如,你的$ _GET ['page']错误很容易发现,因为如果你在$ _GET数组中得到一个未定义的索引'page',你可以立即查看URL并查看是否缺少页面。同样处理$ row,显然你的$ row数组中没有带'key'键的元素。如果你得到未定义的索引错误,大多数情况下你做错了,因为你应该知道你的数组键。祝你好运!

答案 2 :(得分:0)

$page = (!isset($_GET['page']) || $_GET['page'] < 0) ? "1" : $_GET['page'];

在第二个示例中,您应该找到此行的来源,或者您应该使用某个默认值替换它:

$adminRow = isset($row['admin']) ? $row['admin'] : $defaultValue;
$sql1 = "SELECT * FROM `forum_cats` WHERE `admin` < ".$adminRow."+1";