存储来自MySQL的10个最新行

时间:2014-02-12 13:39:21

标签: php mysql sql

我是MySQL的新手,所以不要判断!无论如何,我要做的是将MySQL数据库中的10个最新行存储到PHP数组中。我的变量$ news包含我从运行fetch_news()查询得到的MySQL数据(我告诉它只是为了获取内容,其中有一个名为type的列,其中包含值“news”)。但是,我一直无法成功地做到这一点。

如果你们可以提供一些帮助或指导,我会非常感激,因为我已经坚持了很长一段时间了!

LAYOUT OF MY TABLE IN MYSQL

3 个答案:

答案 0 :(得分:2)

$query = 'SELECT *
          FROM `table_name`
          WHERE `type`="news"
          ORDER BY `article_id` DESC
          LIMIT 10';
$query = mysqli_query($link, $query);

$result = array();
while ($row = mysqli_fetch_assoc($query)) {
    $result[] = $row;
}

print_r($result);

答案 1 :(得分:0)

虽然您的“类型”列会告诉您该行是否为新闻项,但它并未告诉您何时将其添加到表中。 您还需要使用其他一些列,或者某种增量计数器(如“article_id”可能),或者将项目添加到表中时的时间戳(在您的情况下可能是“article_timestamp”)

使用其中一个,您可以按照自己的方式对结果进行排序。 对结果进行排序后,需要将它们限制为所需的10个。

您可以在Official MySQL documentation中找到有关ORDER BY和LIMIT的更多信息。

答案 2 :(得分:0)

$newest_ten = array();
$command = "select * from table_name order by date DESC limit 10";
$result = $db->query($command);
while($data = $result->fetch_assoc()){
    $newest_ten[] = $data;
}

该命令从表table_name获取所有列,根据它们的日期(从最新到最旧)按顺序排列,然后只给出前10个。

while循环遍历结果并将它们添加到数组中。

相关问题