我想用PHP和MySQL做一个简单的新闻系统,现在我得到了一个工作的帖子和阅读系统,但只有一个问题,我想它显示10个最新的新闻,但它却显示10个最老的新闻。
我的问题是:有没有办法让MySQL从表格的底部返回结果,或者我必须首先获得帖子的数量,然后将其限制在最后10个帖子?
这里是插入(标题和文本被转义,时间是time(),poster还没有完成):
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']);
}所以,简而言之:我想向后读取数据库,这是可能的吗?
发布于 2009-05-13 18:38:57
查看ORDER BY子句。它允许您按列的升序或降序对行进行排序。下面的查询将返回10个新闻条目,按时间降序排序。
SELECT * FROM news ORDER BY time DESC LIMIT 10发布于 2009-05-13 18:38:44
很简单,只需在SQL中添加一个"ORDER BY“子句,例如
SELECT * FROM news ORDER BY time DESC LIMIT 10发布于 2009-05-13 18:39:24
您需要修改查询以按其创建日期进行排序。就像这样
SELECT * FROM news order by time DESC LIMIT 10对你来说应该很管用。我认为值得注意的是,如果您不指定Order by子句,则不能保证返回结果的顺序。现在,您碰巧在插入时按升序对它们进行了排序,但是您不能放心地假设这种情况永远都会发生。
https://stackoverflow.com/questions/859642
复制相似问题