【发布时间】:2017-10-28 19:27:12
【问题描述】:
有一个错误导致它不能在 ASC/DESC 之间翻转,我 90% 确定它在这几行之内。我认为我需要有一个“第一个”循环来“保存”$sort 所以它稍后翻转。但是当我这样做时会导致数组错误。
SQL 很可能是正确的... 我不担心 SQL 注入/PDO/安全性,因为我稍后会添加该代码。
完整链接:https://solenoidal-slate.000webhostapp.com/
if(isset($_GET['sort'])){
$sort = $_GET['sort'];
} else {
$sort='ASC';
}
$sort == 'DESC' ? $sort ='ASC': $sort='DESC';
$query = "SELECT * FROM employees ORDER BY $order $sort";
$results = mysqli_query($con, $query); ?>
<th><a class="column_sort" id="id" href='?order=id&sort=$sort'>ID<span class="glyphicon glyphicon-sort-by-alphabet"></span></a></th>
上面这一行是“获取”$sort 变量的列示例。
编辑:为了节省时间,$order 不是问题。每个列名都按列成功排序。
if(isset($_GET['order'])){
$order = $_GET['order'];
} else {
$order = 'id';
}
【问题讨论】:
-
您将
$order设置为ASC。我怀疑这是一个列名。与大多数此类问题一样,在变量替换后查看代码通常可以解决问题。 -
if(isset($_GET['order'])){ $order = $_GET['order']; } 其他 { $order = 'id'; }
-
你确定没有错误吗?
-
Gordon,我修正了我发现的小错字,这有助于(消除错误)但仍然无法对 ASC/DESC 进行排序。感谢您找到那个错字。
-
你知道 $sort == 'DESC' 吗? $sort ='ASC': $sort='DESC';没用?如果设置了 $_GET,则采用该值,否则采用 ASC(您的默认值)。