【问题标题】:php code for latest entries [duplicate]最新条目的php代码[重复]
【发布时间】:2026-02-08 16:40:01
【问题描述】:

目前我正在使用此代码:

<?php
$query1 = "SELECT `tag` FROM  `search` ORDER BY RAND() LIMIT 50";
$query1 = mysql_query($query1);
while ($row1 = mysql_fetch_assoc($query1)){
    $name1 = $row1['tag'];
    $link1 = str_replace(' ','_',$name1);
    $link1 = preg_replace('/[^A-Za-z0-9\-]/', '-', $link1);
    $link1 = preg_replace('/-+/', '+', $link1);
    $link1 = $siteurl."download.php?q=".$link1;
    echo '<a href="'.$link1.'" title="'.$name1.'">'.$name1.'</a>&nbsp;&nbsp;';
}
?>

代码显示了我表中的 50 个随机条目,但我想显示最新的 50 个条目。

【问题讨论】:

  • 你可以给ORDER BY添加另一个参数。
  • 像菜鸟一样解释我,因为我不太擅长这个:D 谢谢:)
  • ORDER BY RAND(), ASC|DESC - | 是其中之一。任你选 ;-)
  • 那么,这是否为您解决了问题? ^ 还是这个问题仍然被认为是“开放的”?
  • 警告:mysql_fetch_assoc() 期望参数 1 是资源,在第 125 行的 C:\xampp\htdocs\test\index.php 中给出的布尔值

标签: php mysql


【解决方案1】:

您几乎已经回答了自己的问题。

$query1 = "SELECT `tag` FROM  `search` ORDER BY RAND() LIMIT 50";

这一行有 RAND(),它告诉 MySQL 获取 RANDOM Entries。

只获取最后 50 个条目

$query1 = "SELECT `tag` FROM  `search` ORDER BY id DESC LIMIT 50 ";

在大多数情况下,默认排序将按主键,即自动增量值,通常是 id。 DESC 说,如果您希望它们按顺序排列,请在最后到第一个提交的条目中将它们交给我,您必须执行子查询来反转它们并按照第一个提交的顺序获取它们,但最后 50 个完整。

$query1 = "SELECT * FROM (
    SELECT * FROM `search` ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC ";

或者你可以做类似的事情

$query1 = "(SELECT * FROM `search` ORDER BY id DESC LIMIT 50) ORDER BY id ASC";

【讨论】:

  • 工作 :) 谢谢 :)