有些人可能知道我的脚本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。
非常感谢
答案 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