|
|
|
| всех приветствую, тут потребовалось вывести данные с разбивкой по месяцам, как можно увидеть на скрине http://wp-kama.ru/wp-content/uploads/2010/12/blix_archive.gif
данные вывожу из БД
foreach($data as $k){
echo $k['date'].' - '.$k['name'].'<br>';
}
|
получаю:
2011-10-26 12:15:45 - заголовок 1
2011-10-26 11:28:02 - заголовок 2
2011-10-26 00:16:39 - заголовок 3
2011-10-25 23:53:36 - заголовок 4
2011-10-25 23:38:14 - заголовок 5
2011-10-25 23:21:33 - заголовок 6
2011-10-25 23:09:57 - заголовок 7
2011-10-25 21:54:52 - заголовок 8
2011-10-25 21:24:19 - заголовок 9
2011-10-25 16:59:06 - заголовок 10
|
в голове крутится мысль как то отделить записи по отдельности, то есть создать три уровня массива, сперва год, потом месяц, и в конце уже данные. Но вот не соображу как правильнее сделать практически. Буду благодарен за помощь. | |
|
|
|
|
|
|
|
для: web777
(15.11.2011 в 12:34)
| | Я бы просто слегка докрутил этот цикл, псевдокод
активный_месяц_год = 0;
начало цикла (все_записи как запись)
если (запись.месяц_год != активный_месяц_год ) {
выводим отформатированные(запись.месяц_год)
активный_месяц_год = запись.месяц_год;
}
выводим запись;
конец цикла;
|
Надеюсь понятно написал) | |
|
|
|
|
|
|
|
для: Гость
(15.11.2011 в 12:44)
| | по вашему варианту на каждый месяц отдельный цикл? | |
|
|
|
|
|
|
|
для: web777
(15.11.2011 в 13:03)
| | нет, цикл остается один - тот же собственно что у вас сейчас и есть. Собственно вы его и реализовали ниже) | |
|
|
|
|
|
|
|
для: web777
(15.11.2011 в 12:34)
| |
<?php
foreach($data as $k){
$year_m = substr($k['date'],0,7);
echo $year_m.' - '.$k['name'].'<br>';
}
?>
|
| |
|
|
|
|
|
|
|
для: Jovidon
(15.11.2011 в 13:15)
| | спасибо большое, понял суть, не нужно оказывается перегонять в массив по дате, и из него выводить. Достаточно просто условие в начале прописать.
Ваш вариант не заработал выдало ошибку
Parse error: syntax error, unexpected T_ECHO in /home/u145678/.ru/www/templates/template117/template.htm on line 100
вот мой вариант
<?php
$year = '';
$month = '';
foreach($shop->GetAllItems($shop_id, $group_id, $param) as $k){
if( $year != substr($k['date'],0,4)){
echo '<br><b>'.substr($k['date'],0,4).'</b><br>';
}
if( $month != substr($k['date'],0,7)){
echo '<br><b>'.substr($k['date'],0,7).'</b><br>';
}
echo $k['date'].' - '.$k['item_id'].'<br>';
$month = substr($k['date'],0,7);
$year = substr($k['date'],0,4);
}
?>
|
результат:
http://clip2net.com/s/1jRv3 | |
|
|
|