我希望能够动态地将一组行的顺序从升序变为降序,反之亦然。
像<a href="file.php?sort=">
之类的东西,点击sort =“asc”后,再点击sort =“desc”所以我可以用$_GET
得到它并把它放在变量上以便在mysql查询中使用它
这是我的一些代码
if(isset($_SESSION['is_logged']) === true)
{
$url_array = array("date_added", "username", "title", "content");
$order = "date_added";
if (isset($_GET['order_by']) && in_array($order, $url_array))
{
$order = $_GET['order_by'];
}
echo '<table border="1" cellpadding="5" cellspacing="2">';
echo '<tr>Sort: ▼ <br />'
. '<th><a href="?order_by=date_added&type=">somestuff</a></th>'
. '<th><a href="?order_by=username">somestuff</a></th>'
. '<th><a href="?order_by=title">somestuff</a></th>'
. '<th><a href="?order_by=content">somestuff</a></th>'
. '</tr>';
$query = run_q('SELECT * FROM posts as p, users as u WHERE p.added_by=u.user_id ORDER BY '.$order.' DESC');
答案 0 :(得分:0)
好吧,你的超链接不是指向任何特定的页面,只是一个查询字符串。
试试这个:
echo '<tr>Sort: ▼ <br />'
. '<th><a href="'.$_SERVER[PHP_SELF].'?order_by=date_added&type=">somestuff</a></th>'
. '<th><a href="'.$_SERVER[PHP_SELF].'?order_by=username">somestuff</a></th>'
. '<th><a href="'.$_SERVER[PHP_SELF].'?order_by=title">somestuff</a></th>'
. '<th><a href="'.$_SERVER[PHP_SELF].'?order_by=content">somestuff</a></th>'
. '</tr>';
此外,您的查询容易受到注入SQL攻击,因此请将$order
变量更改为:
$order = ($order == ("date_added" || "username" || "title" || "content") ? $_GET['order_by'] : "date_added");
这也有减少之前$order = "date_added"
行的好处。