2014-02-21 4 views
0

Прежде всего, простите уродливый метод. Я устал, и я не могу придумать другого способа сделать это в данный момент.Проблема с номером журнала изменений

Итак, моя проблема такова: мой журнал изменений работал нормально до вчерашнего дня. Я боролся с ним всю ночь и, похоже, не могу это исправить.
Он отображает все правильно, пока он не достигнет 20/02/2014, то он просто повторяет его (см скриншот)

Вот мой код (опять же, простите меня)

$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)); 
} 

Теперь он показывает хорошо, пока он не упрется в вопрос, что я, по-видимому, не может объяснить достаточно четко (опять же, усталым, извините!)

0 Скриншот

Changelog: 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 

ответ

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 
} 
Смежные вопросы