【问题标题】:How can I set order by asc/desc dynamically from a link [duplicate]如何从链接中通过 asc/desc 动态设置顺序 [重复]
【发布时间】:2014-01-12 04:31:06
【问题描述】:

我希望能够动态地将一组行的顺序从升序更改为降序,反之亦然。

<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: &#x25BC; <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');

【问题讨论】:

    标签: php mysql href


    【解决方案1】:

    嗯,您的超链接不指向任何特定页面,只是一个查询字符串。

    试试这个:

    echo '<tr>Sort: &#x25BC; <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" 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-14
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2012-05-06
      • 1970-01-01
      相关资源
      最近更新 更多