更改日志显示顺序问题

时间:2014-02-21 18:03:51

标签: php sql

首先,请原谅丑陋的方法。我很累,现在我想不出另一种方法。

所以,我的问题是:我的更新日志工作正常,直到昨天。我整夜都在和它斗争,似乎无法解决它 它会正确显示所有内容,直到它达到2014年2月20日,然后它才重复它(见截图)

这是我的代码(再次,原谅我)

$select = $mtgdb->query("SELECT `timewhen` FROM `changelog` GROUP BY FROM_UNIXTIME(`timewhen`, '%d%m%Y') ORDER BY `timewhen` DESC");
while($row = $mtgdb->fetch_row($select)) {
?><li><?php echo date('d/m/Y', $row['timewhen']);?><ul><?php
    $selectContent = $mtgdb->query("SELECT `content` FROM `changelog` WHERE FROM_UNIXTIME(`timewhen`, '%d%m%Y') = ".date('dmY', $row['timewhen'])." ORDER BY `timewhen` ASC");
    while($row2 = $mtgdb->fetch_row($selectContent)) {
        ?><li><?php echo $mtg->format($row2['content']);?></li><?php
    }
?></ul></li><?php
}

的信息:
fetch_row()= mysqli_fetch_assoc()

function format($str, $dec = 0) {
    return is_numeric($str)? number_format($str, $dec) : stripslashes(htmlspecialchars($str));
}

现在,它显示正常,直到它遇到问题我显然无法解释清楚(再次,累了,对不起!)

更改日志屏幕截图:http://screencast.com/t/Hr45QsDe3QB
数据库摘录截图:http://screencast.com/t/PCuk0XJ8e6

表格结构:

CREATE TABLE `changelog` (
   `id` int(11) not null auto_increment,
   `timewhen` bigint(25) not null default '0',
   `content` text not null,
   PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 个答案:

答案 0 :(得分:0)

我自己设法解决了这个问题。 对于任何想知道如何做的人。我只是更改了选择查询

$select = $mtgdb->query("SELECT FROM_UNIXTIME(`timewhen`, '%d/%m/%Y') AS `datestamp` FROM `changelog` GROUP BY FROM_UNIXTIME(`timewhen`, '%d%m%Y') ORDER BY `timewhen` DESC");
while($row = $mtgdb->fetch_row($select)) {
    ?><li><?php echo $row['datestamp']; ?><ul><?php
        $selectContent = $mtgdb->query("SELECT `content` FROM `changelog` WHERE FROM_UNIXTIME(`timewhen`, '%d/%m/%Y') = '".$row['datestamp']."' ORDER BY `id` ASC");
        while($row2 = $mtgdb->fetch_row($selectContent)) {
            ?><li><?php echo $mtg->format($row2['content']); ?></li><?php
        }
    ?></ul></li><?php
}