使用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