Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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进行排序_Php_Javascript_Html - Fatal编程技术网

使用php进行排序

使用php进行排序,php,javascript,html,Php,Javascript,Html,我把数据库中的所有值都显示在一个页面上。现在,如果我单击该列,它应该按升序或降序排序 我如何做到这一点?您将使用JavaScript。我建议。您将使用JavaScript。我建议。如果只想在PHP中执行此操作,则需要在URL中的查询字符串中添加参数 www.example.com/table.php?col=mycolumn&sort=desc 这将在该列的锚定标记中,然后在table.php中,您将拥有处理排序的逻辑。如果您只想在php中执行此操作,则需要在URL中的查询字符串中添加参数 ww

我把数据库中的所有值都显示在一个页面上。现在,如果我单击该列,它应该按升序或降序排序


我如何做到这一点?

您将使用JavaScript。我建议。

您将使用JavaScript。我建议。

如果只想在PHP中执行此操作,则需要在URL中的查询字符串中添加参数

www.example.com/table.php?col=mycolumn&sort=desc


这将在该列的锚定标记中,然后在
table.php
中,您将拥有处理排序的逻辑。

如果您只想在php中执行此操作,则需要在URL中的查询字符串中添加参数

www.example.com/table.php?col=mycolumn&sort=desc


这将在该列的锚标记中,然后在
table.php
中,您将拥有处理排序的逻辑。

请求:www.example.com/table.php?col=mycolumn&sort=desc

//may be some check , about the column is in  the table field
//sort is in the set of (asc , desc)

$q = "select * from mytable where mycond order by addslashes($_GET['mycolumn']) addslashes($_GET['sort'])";

请求:www.example.com/table.php?col=mycolumn&sort=desc

//may be some check , about the column is in  the table field
//sort is in the set of (asc , desc)

$q = "select * from mytable where mycond order by addslashes($_GET['mycolumn']) addslashes($_GET['sort'])";

在roflwaffle的文章中展开,您将希望使用查询字符串变量。从中生成一个字符串,并将其添加到查询中

$querySort = array();
if (isset($_GET['colName'])) {
    $s = $_GET['colName'];
    $snext = '';
    switch ($s) {
        case '':     $snext = 'desc'; break;
        case 'desc': $snext = 'asc';  break;
        case 'asc':  $snext = ''; break;
        default:     $snext = '';
    }
    if (!empty ($snext)) {
        $querySort[] = "colName $snext";
    }
    $colName_link = "colName=$snext";
    $colName_text = $snext;
}

// Further column checks

if (count($querySort) == 0) {
    // Default sort if no sort is given.
    $querySort[] = "colName asc";
}

$sort = implode (', ', $querySort);

$query = mysql_query ("SELECT * FROM table ORDER BY $sort");
因此,给定以下查询字符串

www.example.com/table.php?colName=desc  
查询如下所示

SELECT * FROM table ORDER BY colName desc LIMIT 0, 15
echo "<a href='?$colName_link'>Column Name</a> <small>$colName_text</small>";
分类链接应该是这样的

SELECT * FROM table ORDER BY colName desc LIMIT 0, 15
echo "<a href='?$colName_link'>Column Name</a> <small>$colName_text</small>";
echo“$colName\u text”;

在roflwaffle的文章中展开,您将希望使用查询字符串变量。从中生成一个字符串,并将其添加到查询中

$querySort = array();
if (isset($_GET['colName'])) {
    $s = $_GET['colName'];
    $snext = '';
    switch ($s) {
        case '':     $snext = 'desc'; break;
        case 'desc': $snext = 'asc';  break;
        case 'asc':  $snext = ''; break;
        default:     $snext = '';
    }
    if (!empty ($snext)) {
        $querySort[] = "colName $snext";
    }
    $colName_link = "colName=$snext";
    $colName_text = $snext;
}

// Further column checks

if (count($querySort) == 0) {
    // Default sort if no sort is given.
    $querySort[] = "colName asc";
}

$sort = implode (', ', $querySort);

$query = mysql_query ("SELECT * FROM table ORDER BY $sort");
因此,给定以下查询字符串

www.example.com/table.php?colName=desc  
查询如下所示

SELECT * FROM table ORDER BY colName desc LIMIT 0, 15
echo "<a href='?$colName_link'>Column Name</a> <small>$colName_text</small>";
分类链接应该是这样的

SELECT * FROM table ORDER BY colName desc LIMIT 0, 15
echo "<a href='?$colName_link'>Column Name</a> <small>$colName_text</small>";
echo“$colName\u text”;


最好的方法是使用javascript(无需刷新页面)。雅虎s YUI3有一个非常好的数据表组件。如果您的PHP页面上有完整的数据集,我无法从您的问题中弥补,但我现在将假设这一点。您应该先看看页面,然后开始使用。

最好的方法是使用javascript(无需刷新页面)。雅虎s YUI3有一个非常好的数据表组件。如果您的PHP页面上有完整的数据集,我无法从您的问题中弥补,但我现在将假设这一点。您应该先看一下页面,然后开始学习。

请看一下链接。检查示例。我在我的一个项目中使用它也是出于同样的目的,希望它也能对您有所帮助。

请查看链接。查看示例。我在我的一个项目中使用它也是出于同样的目的,希望它也能对您有所帮助。

记住不要将这些值直接放入查询中,以避免SQL注入现在,我已经在锚标签中购买了它们。如何在查询中传递它们string@fddsf这里我发布了一个例子:这里只提到了字段名,但对于方向,代码将是所有的same@Schrapnel这可以通过只检查
desc
asc
来轻松避免。更好的办法是使用PDO完全避免它。@Col它在这里有所有的事情要做。您开始使用SQL注入进行注释。防止这种情况的最好方法是使用PDO!查询字符串可能不安全(即使对于XSS也是如此)。请记住不要将这些值直接放入查询中,以避免SQL注入,我已经在锚标签中购买了它们。如何在查询中传递它们string@fddsf这里我发布了一个例子:这里只提到了字段名,但对于方向,代码将是所有的same@Schrapnel这可以通过只检查
desc
asc
来轻松避免。更好的办法是使用PDO完全避免它。@Col它在这里有所有的事情要做。您开始使用SQL注入进行注释。防止这种情况的最好方法是使用PDO!查询字符串可能是不安全的(甚至对XSS也是如此)。JS的用途非常有限,仅用于一个页面大小datasets@Col.“一页”是什么意思?有那么多的
tr
元素需要跟踪,JavaScript对于更大的数据集是不可行的?这意味着Stackoverflow。有很多页面都有问题,没有浏览器可以容纳所有问题——因此,对于每一个页面,都会向服务器发出另一个请求。而要将所有问题按另一个方向排序,则需要向服务器发出另一个请求well@Col.我还是不明白。为什么页面是个问题?表格不是单个页面上的单个
table
元素吗?你说的是一个有很多行的分页表吗?JS的用途非常有限,只适用于一页大小datasets@Col.“一页”是什么意思?有那么多的
tr
元素需要跟踪,JavaScript对于更大的数据集是不可行的?这意味着Stackoverflow。有很多页面都有问题,没有浏览器可以容纳所有问题——因此,对于每一个页面,都会向服务器发出另一个请求。而要将所有问题按另一个方向排序,则需要向服务器发出另一个请求well@Col.我还是不明白。为什么页面是个问题?表格不是单个页面上的单个
table
元素吗?你说的是一个有很多行的分页表吗?你的数据集是适合一个页面还是将被分页?如果是,您想对整个数据集还是只对一页进行排序?请仔细检查,然后指出您仍然存在的问题。数据集的可能重复项是否适合一页,还是将对其进行分页?如果是,您想对整个数据集还是只对一页进行排序?请仔细阅读,然后指出您仍然存在的问题。的可能重复项不应使用addslashes,应使用preparedstatements@Logan贝利哈哈!你确定你理解这个问题吗?不应该使用addslashes,应该使用preparedstatements@Logan贝利哈哈!你确定你理解这个问题吗?@gutterball。我需要通过单击列进行上升或下降header@fddsf将列标题设置为超链接。@Gotter ball:我已经这样做了,但是要通过链接传递什么php代码。@fddsf我已经编辑了我的文章,希望它对您更有帮助。链接的代码为t