Php 通过同一页面的DESC、ASC和e.t.c.使用链接更改内容排序
这是我的查看页面:Php 通过同一页面的DESC、ASC和e.t.c.使用链接更改内容排序,php,mysql,database,hyperlink,sql-order-by,Php,Mysql,Database,Hyperlink,Sql Order By,这是我的查看页面: <?php include 'connect/con.php'; $result = mysqli_query($con,"SELECT newsvid.id, newsvid.vidTitle, newsvid.url, newsvid.vidSD, newsvid.published, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformat
<?php
include 'connect/con.php';
$result = mysqli_query($con,"SELECT newsvid.id, newsvid.vidTitle, newsvid.url, newsvid.vidSD, newsvid.published, videoinformation.vidLD, videoinformation.vidYear, videoinformation.vidCity, videoinformation.vidZanr, videoinformation.vidQuality, videoinformation.vidTranslated, videoinformation.vidTime FROM newsvid, videoinformation WHERE newsvid.id = videoinformation.id ORDER BY newsvid.id DESC");
while($row = mysqli_fetch_array($result)) {
echo '<div class="id">#<a href="details.php?id='.$row['id'].'">'.$row['id'].'</a></div>';
echo "<div class=\"vidTitle\">" . $row['vidTitle'] . "</div>";
echo "<div class=\"imgCover\"><img class=\"imageCover\"src=\"" . $row['url'] . "\"></div>";
echo "<div class=\"vidSD\">" . $row['vidSD'] . "</div>";
echo "<div class=\"vidDetails\">
<table class=\"tableSD\" >
<tr><td class=\"tdBR\"><strong> Years: </strong></td><td class=\"tdB\">" . $row['vidYear'] . "</td></tr>
<tr><td class=\"tdBR\"><strong> City: </strong></td><td class=\"tdB\">". $row['vidCity'] . "</td></tr>
<tr><td class=\"tdBR\"><strong> Zanr: </strong></td><td class=\"tdB\">". $row['vidZanr'] . "</td></tr>
<tr><td class=\"tdBR\"><strong> Quality: </strong></td><td class=\"tdB\">". $row['vidQuality'] . "</td></tr>
<tr><td class=\"tdBR\"><strong> Translated: </strong></td><td class=\"tdB\">". $row['vidTranslated'] . "</td></tr>
<tr><td class=\"tdBR\"><strong> Video time: </strong></td><td class=\"tdB\">". $row['vidTime'] . "</td></tr>
</table>
</div>";
echo "<div class=\"published\"><strong>Published: </strong>" . $row['published'] . "</div>";
}
mysqli_close($con);
?>
如果我按ASC,view.php页面将显示newsvid.id ASC排序的结果,如果我按DESC,view.php页面将显示newsvid.id DESC排序的结果,依此类推……- 制作两个以ASC和DESC为URL查询参数的链接(例如,
)$\u GET['order']
- 在服务器端,确保检查值是否为ASC或DESC,以防止恶意意图(即,在数组中的
(strtolower($\u GET['order']),['ASC','DESC'])
- 将参数附加到查询中,使DESC/ASC部分变为变量
<div class="mainLeftCover">
<a href="view.php?order=ASC">ASC</a>
<a href="view.php?order=DESC">DESC</a>
</div>
与一起使用可获取参数,如果未设置,则传递默认值
$order = isset($_GET['order']) ? $_GET['order'] : 'DESC';//Change to ASC if you want this as default
用于消毒
$goodParam = array("ASC", "DESC");
if (in_array($order, $goodParam)) {
然后使用=
构建$query
if($order == 'DESC'){
$query .= " ORDER BY newsvid.id DESC";
}else{
$query .= " ORDER BY newsvid.id ASC";
}
}
$result = mysqli_query($con,$query);
@Denis代码中有一个输入错误。缺少的右括号应该是
if(在数组中($order,$goodParam))
我有一个问题…订购页面…在新页面中打开以及如何在同一页面中打开?如果需要,我可以向您展示完整的代码…@Denis change view.php到任何页面。主要思想是…通过单击asc和desc而不是页面将更改…我需要更改div…如果您希望在不重新加载页面的情况下更改div你需要使用AJAX.eMail给我(地址见我的个人资料)进一步讨论。
$goodParam = array("ASC", "DESC");
if (in_array($order, $goodParam)) {
if($order == 'DESC'){
$query .= " ORDER BY newsvid.id DESC";
}else{
$query .= " ORDER BY newsvid.id ASC";
}
}
$result = mysqli_query($con,$query);