遍历列表并表示最新一条记录


在一个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的参数要填写为你的数据库的账号密码咯,效果图如下:


原文链接:https://blog.yongit.com/note/100344.html