PHP反转MySQL DB的结果顺序

时间:2012-10-11 15:10:01

标签: php mysql

我想颠倒数组的顺序。

我的代码:

$result = mysql_query("SELECT * FROM notfi1 WHERE Own='" .$_GET['u']. "'");
while($row = mysql_fetch_array($result))
  {
  echo 'link:<a href=member.php?u=' .$row['UserId']. '>text</a><br>';
  }

输出:

<a href=member.php?u=name8>text</a>
<a href=member.php?u=name9>text</a>
<a href=member.php?u=name10>text</a>

我想扭转它:

<a href=member.php?u=name10>text</a>
<a href=member.php?u=name9>text</a>
<a href=member.php?u=name8>text</a>

3 个答案:

答案 0 :(得分:5)

您有两种解决方案:

  1. 按降序排序
  2. 使用array_reverse或rsort
  3. 解决方案#1:

    "SELECT * FROM notfi1 WHERE Own='" .$_GET['u']. "' ORDER BY UserId DESC"
    

    解决方案#2:

    $result = mysql_query("SELECT * FROM notfi1 WHERE Own='" .$_GET['u']. "'");
    while($row = mysql_fetch_array($result))
    {
        $data[] = $row['UserId'];
    }
    rsort($data);
    foreach($data as $item){
        echo 'link:<a href=member.php?u=' .$row['UserId']. '>text</a><br>';
    }
    

    第二种方法更好,因为这意味着你要从显示器中分离数据检索......它应该以这种方式完成,但不能阻止你在MySQL服务器上对数据进行排序

答案 1 :(得分:4)

如果您想首先显示最新ID,只需按用户ID排序

$result = mysql_query("SELECT * FROM notfi1 WHERE Own='" .$_GET['u']. "' ORDER BY UserId DESC");
while($row = mysql_fetch_array($result))
{
    echo 'link:<a href=member.php?u=' .$row['UserId']. '>text</a><br>';
}

答案 2 :(得分:1)

向SQL添加ORDER BY UserId DESC并让数据库为您执行此操作:

$result = mysql_query("SELECT * FROM notfi1 WHERE Own='" .$_GET['u']. "' ORDER BY UserID DESC");

附注:

使用该代码,你会更好地祈祷没有人去yoururl.com/yourpage.php?u='%20OR%201%3D1%20--或更糟。我建议你阅读SQL注入攻击。

如果这不是您正在修改的旧代码,那么您首先不应该使用mysql_*函数。他们被弃用了。