让MySQL向后退表

时间:2009-05-13 18:36:16

标签: php mysql

我想用PHP和MySQL创建一个简单的新闻系统,现在我有一个工作的帖子和阅读系统,但只有一个问题,我希望它显示10个最新消息,但它显示了10个最古老的新闻。

我的问题是:有没有办法让MySQL从表格底部返回结果,或者我必须首先获得帖子的数量,然后将其限制为最后10个帖子?

这是插入(标题和文本被转义,时间是时间(),海报还没有完成):

mysql_query("INSERT INTO news (title, poster, text, time) VALUES ('$newstitle', '1', '$newstext', '$time')") or die(mysql_error());

回到它(addnews回声):

$myqr = mysql_query('SELECT * FROM news LIMIT 10') or die("Error running news query: ". mysql_error());
while($myres = mysql_fetch_array($myqr))
{
addnews($myres['id'], $myres['title'], "admin", date('l jS F Y - H:i:s', $myres['time']), $myres['text']);
}

所以,简而言之:我想向后读数据库,是否可能?

8 个答案:

答案 0 :(得分:11)

查看ORDER BY条款。它允许您按列按升序或降序对行进行排序。以下查询将返回10个新闻项,按时间降序排序。

SELECT * FROM news ORDER BY time DESC LIMIT 10

答案 1 :(得分:2)

简单,只需在SQL中添加“ORDER BY”子句,例如

SELECT * FROM news ORDER BY time DESC LIMIT 10

答案 2 :(得分:1)

您需要修改查询以按创建日期排序。

之类的东西
SELECT * FROM news  order by time DESC LIMIT 10

应该适合你。我认为值得注意的是,如果您没有指定Order by子句,则无法保证返回结果的顺序。现在,你恰好在它们被提升时插入它们,但你无法安全地认为它总是如此。

答案 3 :(得分:0)

假设id是主键:

SELECT * FROM new ORDER BY id DESC LIMIT 10

答案 4 :(得分:0)

使用ORDER BY子句。

答案 5 :(得分:0)

难道你不能简单地在LIMIT 10之前按时间顺序降序吗?

答案 6 :(得分:0)

使用

SELECT * FROM news ORDER BY time DESC LIMIT 10

答案 7 :(得分:0)

您也可以使用

SELECT TOP 10 FROM news ORDER BY time DESC

我相信。但不确定'top'子句是否只是SQL Server。