我有一个新闻表,我想在每行中选择3个最新的东西,它们被编号为1作为最旧的,我添加的每个数据都会高出一个数字。那么,你如何获得这三件最新的东西并将它们展示在不同的地方呢?(对不起,我想不出如何表达我的问题)
编辑:我没有像html之类的东西来显示想要的效果,但我可以解释一下。我有一个有4行的SQL表。身份证、职务、日期和职务。这是一个新闻提要,我想在主页上显示3篇最新的新闻"文章"。但我不想只把它们显示为列表,我想把标题放在顶部的div中,放在日期旁边,我想按主键(ID)排序,然后把帖子放在标题和日期下的div中。这里有一个尝试向您展示:
标题|日期最新消息。等等。在这里插入大段新闻等等。标题|日期第二条最新消息。等等。在这里插入大段新闻等等。标题|日期第三条最新消息。等等。在这里插入大段新闻等等。
首先,请不要使用"date"作为字段名,比如将其重命名为news_date。这个怎么样?
<?php
$query = mysql_query ("SELECT * FROM yourtable ORDER BY id DESC LIMIT 3");
$number = 1;
while ($result = mysql_fetch_array($query)) {
$id = $result['id'];
$title = $result['title'];
$news_date = $result['news_date'];
$post = $result['post'];
?>
<div name='title'><?php echo $title; ?></div> || <div name='news_date'><?php echo $news_date; ?></div>
<p>News <?php echo $number; ?></p>
<p><?php echo $post; ?></p>
<?php
$number++;
}
?>
如果我对您的问题的理解是正确的,那么您似乎有一个具有行标识符(编号为1到…n)的表,并且您想运行一个查询来返回最近插入的3条记录?
如果是:
假设您有一个名为Books的表,其结构如下:
Books:
- RowNumber
- Col_1
- Col_2
- ...
您需要做的是运行以下SQL:
SELECT
TOP 3 *
FROM
Books
ORDER BY
RowNumber DESC
我希望这能有所帮助:)
如果我没有弄错,您可以使用LIMIT
和ORDER BY
示例
`SELECT columns FROM yourtable ORDER BY primary_key DESC LIMIT 0,2`