遍历列表并表示最新一条记录
在一个QQ群有一个新手说想做那种一批记录,然后将最新的那条输出一个最新标签,好久没有接触mysql了,这两个月都在用pgsql,所有就想着用mysql加一点脚本快速地帮了他一把,不过我个人觉得伸手党真的很难进步,以下仅为参考,可以遍历数据库列表,并且把最新的一条记录mark一个“最新”。
首先创建数据库后执行这个创建表的脚本:
CREATE TABLE `testnew` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
然后插入三条随机数据,最后一个id为3的是最新的,因为他时间戳最大:
-- ----------------------------
-- Records of testnew
-- ----------------------------
INSERT INTO `testnew` VALUES ('1', '海贼王1', '1403020800');
INSERT INTO `testnew` VALUES ('2', '海贼王2', '1403064000');
INSERT INTO `testnew` VALUES ('3', '海贼王3', '1403067697');
然后就是php脚本,也很简单:
<?php
$conn = @mysql_connect('localhost','website','website123')or die("conn err");
$link = mysql_select_db('test123',$conn);
mysql_query('set names "utf8"');
$res = mysql_query("select * from testnew order by time desc");
$arrNew = array();
while (($row=mysql_fetch_array($res))!=false){
//print_r($row);
$arrNew[] = $row;
}
//print_r(time());die;
$maxIndex = max($arrNew);
$op = '';
foreach ($arrNew as $k=>$v){
$op .= $v['name'];
if ($v[0]==$maxIndex[0] && (time()-$v['time'])<(3600*72)) {
$op .= '<font color="#ff0000">最新</font>';
}
$op .= "<br/>";
}
echo $op;
?>
这样子就OK了,当然上面的mysql_connect的参数要填写为你的数据库的账号密码咯,效果图如下: