Помогите с алгоритмом

hussar

In code we trust!
Помогите с алгоритмом

Доброе всем время суток!
Есть такая задача: на страницу выводятся новости, по жеданию заказчика новости выводятся по месяцам, т.е. внутри каждого месяца получается ненумерованный список, примерно так
PHP:
<ul>март 2003
<li>новость 1
<li>новость 2
</ul>
<ul>июнь 2002
<li>новость 1
</ul>
Сами нвости хранятся в БД где поле с текстом новости и поле с timstamp времени занесения новости в базу.

Я не могу понять по какому принципу мне надо распределять новости, т.е. каким образом надо сравнивать даты что бы за каждый месяц все выводилось в одном списке, а за следующий в другом. Или же надо это делать в запросе к БД?

Заренее всем спасибо за помощь!
 

Demiurg

Guest
сортируешь по дате при выборе, потом в цикле следишь за месяцем и готом, как только поменялся выводишь <ul>июнь 2002 и тд.
 

hussar

In code we trust!
Спапсибо, только я вот в этом месте и не понимаю - как следить за изменением месяца.

т.е. надо делать что-то вроде?

PHP:
if ($date[$i-1]==$date[$i])
 

Demiurg

Guest
покажи сначала, как ты вытаскиваешь данные из базы. я имею ввиду цикл
 

на_танке

Guest
Никакого $i у тебя нету. Во всяком случае - не должно быть.
у тебя поток, а не массив.
просто запоминай предыдущее значение и сравнивай при следующей итерации.
и посмотри функции sql: month, dayofmonth
 

hussar

In code we trust!
PHP:
$res=mysql_query("SELECT * FROM news ORDER BY date DESC") or die(mysql_error());
while ($tmp=mysql_fetch_array($res)) {
$date=date("F Y"." &#227;.", $tmp['date']);

// здесь идет вывод в таблицу данных
}
 

Demiurg

Guest
вот и сравнивай $date с тем, что было у тебя раньше, и если оно тоже самое, то не выводи её.
 

hussar

In code we trust!
Наверное совсем туплю! Но как мне сохранить предыдущее значение, ведь в цикле оно на следующем проходе будет новое?
 

на_танке

Guest
в переменную сохранить
старое=текущее.
только делать это надо, естественно, ПОСЛЕ проверки.
 

hussar

In code we trust!
Господа, всем спасибо!!! Мозги мне вправили :) Все получилось, я просто не сразу допер что до присвоения переменной $date следующего значения из базы, можно вытащить предыдущее значение :)
 
Сверху