您好我正在尝试在我的代码中添加不同的排序功能。所以通过asecending和descending添加排序,但我试图添加代码是当没有选择值时,它应该在DESCENDING顺序中由DEFAULT。当它选择它应该在下拉菜单中显示的值时,选择哪个值。假设用户选择降序,那么它应该在框中显示降序。这是我的代码。并感谢高级。
这是我的PHP代码
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "videoplay";
$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error());
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$limit = 20;
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;
$name = $_GET['name'];
$sort = $_GET['sort'];
$sql = "SELECT * FROM video where type= 'Video/Trailer' IF ORDER BY vid ".$sort." IS NULL THEN SET DESC AS DEFAULT LIMIT $start_from, $limit";
$rs_result = mysqli_query($conn, $sql);
?>
<form action="#">
<select class="select" onChange="top.location.href=this.options[this.selectedIndex].value;">
<option value="<?php echo $value ; ?>" selected="<?php echo $selected; ?>"><?php echo $name; ?></option>
<option name="Ascending" value="videos.php?sort=ASC">Ascending </option>
<option name="Descending" value="videos.php?sort=DESC">Descending</option>
</select>
</form>
答案 0 :(得分:0)
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "videoplay";
$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error());
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$limit = 20;
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;
$name = $_GET['name'];
$sort = isset($_GET['sort']) ? $_GET['sort'] : "DESC";
$sql = "SELECT * FROM video WHERE type = 'Video/Trailer' ORDER BY vid $sort LIMIT $start_from, $limit";
$rs_result = mysqli_query($conn, $sql);
?>
您可以使用基本三元运算符来检查是否已发送sort
。
$sort = isset($_GET['sort']) ? $_GET['sort'] : "DESC";
三元运算符由三部分组成:比较,真实比较,错误比较。
isset($_GET['sort'])
- 比较:sort
是否已发送?$_GET['sort']
- 真实比较:如果 ,则将其分配给$sort
变量。"DESC"
- 错误比较:如果它不是,则指定默认的DESC
值。我还从查询中删除了不必要的内容。
$sql = "SELECT * FROM video
WHERE type = 'Video/Trailer'
ORDER BY vid $sort
LIMIT $start_from, $limit";
必须提到的是,您应该使用prepared statements来阻止SQL注入。