可能是个愚蠢的问题,但我不知道如何扩展此代码来订购,例如按发布的名称、按尺寸、按名称等,只需制作更多订购按钮即可。
这是代码:
$query ="SELECT newsvid.id, newsvid.addName, newsvid.vidTitle, newsvid.url, newsvid.vidSD, newsvid.published, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidZanr2, videoinformation.vidZanr3, videoinformation.vidQuality, videoinformation.vidTranslated, videoinformation.vidTime FROM newsvid, videoinformation WHERE newsvid.id = videoinformation.id";
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$goodParam = array("ASC", "DESC");
if (in_array($order, $goodParam)) {
if($order == 'ASC'){
$query .= " ORDER BY newsvid.id ASC";
}else{
$query .= " ORDER BY newsvid.id DESC";
}
}
这是我的按钮:
<a href="view.php?order=ASC">ASC</a>
<a href="view.php?order=DESC">DESC</a>
附注我使用互联网上的示例并采用我的网站,但现在无法扩展,不知道如何扩展。
谢谢
我到底需要在 php 代码中更改什么才能使用此链接?
<a href="view.php?order=ASC">ASC</a>
<a href="view.php?order=name">BY Name</a>
<a href="view.php?order=year">By Year</a>
<a href="view.php?order=published">By Publishing</a>
<a href="view.php?order=size">By Size</a>
我必须这样使用吗?
if (in_array($order, $goodParam)) {
if($order == 'ASC'){
$query .= " ORDER BY newsvid.id ASC";
}else if{
$query .= " ORDER BY newsvid.vidTitle DESC";
}else if{
$query .= " ORDER BY newsvid.published DESC";
}else{
$query .= " ORDER BY videoinformation.vidZard DESC";
}
}
最佳答案
您可以使用多个 ORDER BY
,如下所示:
ORDER BY newsvid.id ASC, newsvid.addName DESC
首先对 ID 进行排序,然后再对两个相同的 ID 对名称进行排序。
如果您只是尝试添加新排序,则只需更改 ORDER BY
中的名称...
你可以这样做:
if($order == 'ASC'){
$query .= " ORDER BY newsvid.id ASC";
} elseif ($order == 'name') {
$query .= " ORDER BY newsvid.addName ASC";
} elseif ($order == 'year') {
$query .= " ORDER BY newsvid.vidYear ASC";
}
关于php - ORDERING mysqli/PHP,如何添加更多排序依据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26817235/