检索我的Basic Announce数据库的最新条目

时间:2013-07-01 10:59:23

标签: php mysql

有些人可能知道我的脚本Basic Announce,我正在尝试获取已发送的最新新闻条目,因此只调出最后一个已知条目。

在这个代码块中是我最初创建的新闻调用者,但是这决定调用所有条目,但管理员可以查看,但我需要在此文件中调用最后一个条目:news.php

<?php

// Connects to your Database

mysql_connect("$server","$usr","$pswd") or die(mysql_error());

mysql_select_db("$db") or die(mysql_error());

$data = mysql_query("SELECT * FROM announcements")

or die(mysql_error());



while($info = mysql_fetch_array( $data ))

{

Print "<tr>";

Print "<th>Announcement:</th><td>".$info['Announcement'] . "</td> ";

Print "<br>";

Print "<th>Submitted By:</th> <td>".$info['Submitted'] . "</td> ";

}

;

?>

我如何选择最后知道的条目我还包括我的数据库表sql代码。

这是Basic Announce.sql代码

CREATE TABLE IF NOT EXISTS `announcements` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Announcement` text NOT NULL,
  `Submitted` text NOT NULL,
  `Date_time` date NOT NULL,
  PRIMARY KEY (`id`)
);

是否可以使用我的主键“id”拉出最后一条记录?

对于这个令人不安的问题的任何帮助都将非常感激,因为我仍然通过自学和灵感学习PHP。

非常感谢

2 个答案:

答案 0 :(得分:1)

id降序排序:

$data = mysql_query("SELECT * FROM announcements ORDER BY id DESC LIMIT 1");

我还添加了LIMIT 1,因为您只想检索集合中的第一行。鉴于您只需要一行,您不需要while循环,只需调用一次fetch:

$data = mysql_query("SELECT * FROM announcements ORDER BY id DESC LIMIT 1");

if($data && mysql_num_rows($data) == 1) // check for success and a row found
{
    $info = mysql_fetch_array( $data );

    Print "<tr>";
    Print "<th>Announcement:</th><td>".$info['Announcement'] . "</td> ";
    Print "<br>";
    Print "<th>Submitted By:</th> <td>".$info['Submitted'] . "</td> ";
}
else
{
    // no rows or an error occurred
}

附注:

  • 不推荐使用mysql_*库。对于新代码,您应该考虑升级到PDO或MySQLi。

  • 应该避免
  • .. or die(mysql_error())。更好的选择是trigger_error(mysql_error())

答案 1 :(得分:0)

试试这个。

SELECT Top 1 * FROM announcements order by id desc