2

我想颠倒数组的顺序。

我的代码:

$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>
4

3 回答 3

7

你有两个解决方案:

  1. 对链接进行降序排序
  2. 使用 array_reverse 或 rsort

解决方案#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 服务器上对数据进行排序

于 2012-10-11T15:15:12.823 回答
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>';
}
于 2012-10-11T15:14:16.113 回答
2

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

$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_*函数。它们已被弃用。

于 2012-10-11T15:13:52.463 回答