注意:if()中未定义的索引按结构排序[重复]
Posted
技术标签:
【中文标题】注意:if()中未定义的索引按结构排序[重复]【英文标题】:Notice: undefinded index in if() order by structure [duplicate] 【发布时间】:2019-06-05 21:15:33 【问题描述】:我有三个链接,每个链接都有一个“ORDER BY”选项。我使用这个 if 结构来更改 $sql 并以正确的方式对其进行排序。我在订单页面上没有收到任何错误,但在未排序的主页面上,我在使用排序的每一行(3 次)都会收到“注意:未定义索引:排序”。
我在 *** 上搜索并尝试了一些可能的解决方案,但到目前为止没有任何帮助。如果这是一个基本问题,我很抱歉,但我对 php 很陌生,所以我对为什么会收到这个错误有点困惑。
<?php
//Query for speaker information
$sqlOverzichtSprekers = "SELECT idsprekers, voornaam, naam, afbeelding,
bio, likecounter FROM sprekers";
//Sql ORDER BY
if ($_GET['sort'] == 'alpha')
$sqlOverzichtSprekers .= " ORDER BY voornaam DESC";
elseif ($_GET['sort'] == 'popular')
$sqlOverzichtSprekers .= " ORDER BY idsprekers";
elseif ($_GET['sort'] == 'likes')
$sqlOverzichtSprekers .= " ORDER BY likecounter DESC";
//Query for speaker
if(!$resOverzichtSprekers = $mysqli->query($sqlOverzichtSprekers))
echo "Oeps, een query foutje op DB voor opzoeken sprekers";
print("<p>Error: " . $mysqli->error . "</p>");
exit();
?>
order by/sort 页面工作正常,没有任何错误,只有未排序的主页面出现以下错误:Notice: Undefined index: sort.
【问题讨论】:
在加载此页面的 url 中有?sort= ..
$_GET['sort']
表示您有该变量来自 url,看起来它不是
【参考方案1】:
正如你所说,未排序的主页面有问题......那是因为没有以 $_GET['sort'] 的形式发送,但你盲目地尝试阅读它。因此出现错误。
先看看 $_GET['sort'] 有没有值,然后使用它。更好的是,将它分配给一个变量,然后使用它......像这样:
$sort = (isset($_GET['sort']) == true) ? $_GET['sort'] : '';
//Query for speaker information
$sqlOverzichtSprekers = "SELECT idsprekers, voornaam, naam, afbeelding,
bio, likecounter FROM sprekers";
//Sql ORDER BY
if ($sort == 'alpha')
$sqlOverzichtSprekers .= " ORDER BY voornaam DESC";
elseif ($sort == 'popular')
$sqlOverzichtSprekers .= " ORDER BY idsprekers";
elseif ($sort == 'likes')
$sqlOverzichtSprekers .= " ORDER BY likecounter DESC";
【讨论】:
以上是关于注意:if()中未定义的索引按结构排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章