Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过同一页面的DESC、ASC和e.t.c.使用链接更改内容排序_Php_Mysql_Database_Hyperlink_Sql Order By - Fatal编程技术网

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部分变为变量

首先,您需要向链接url添加一个参数

<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);