Программирование > PHP
Автоматический вывод новостей на страничке
MHz:
Можно сделать так: дату использовать только как дату последней новости, а из базы просто извлекать фиксированное кол-во последних по дате новостей. Тогда вся логика помещается в тот же запрос, что извлекает новости.
Насколько я помню:
$query="SELECT id,post_date,title,news FROM news WHERE 1 AND TO_DAYS(post_date) < TO_DAYS($dataF) LIMIT 0, $limit
$dataF - день по "календарю"
$limit - максимальное кол-во новстей на странице, например 10
3D-Dragon:
MHz
Не работает :(
Вот кусок измененного по твоему совету кода
$show_rows = 10;
$dateF=date ( "Y-m-d H:i:s",mktime ());
if (!isset($limit)) $limit=0;
else $limit=$limit-1;
$query="select post_date,title,news,istochnik,url,autor,mail from news order by post_date WHERE 1 AND TO_DAYS(post_date) < TO_DAYS($dataF) desc limit $limit,$show_rows";
$result=mysql_query ($query);
while ($row=mysql_fetch_array ($result))
{
$post_date=$row["post_date"];
$title=$row["title"];
$news=$row["news"];
$istochnik=$row["istochnik"];
$url=$row["url"];
$autor=$row["autor"];
$mail=$row["mail"];
$limit=$limit+1;
?>
Где копать ???
Я уже сам вижу, что у меня неправильно определена $dateF
:mad:
Блин, как-же их сравнивать эти post_date и $dateF ?
Stek:
Короче. Логика такова
SELECT post_date FROM news ORDER BY post_date DESC LIMIT 1
подгоняешь этот запрос под себя. чтобы тебе возвращалась дата последнего сообщения.
Ну а далее
select * from news where post_date=\'что получили из прудидущего селекта\'
MHz:
можно попробовать так:
$show_rows = 10;
$dateF=date ( "Y-m-d",mktime ()); // текущая дата, но подразумевается что может быть любая
if (!isset($limit)) $limit=0;
else $limit=$limit-1; // это что такое ? навигация по страницам?
// тогда так ($page - текущая страница, должна передаваться через GET или POST):
$limit = ($page -1) * $show_rows;
$query="select post_date,title,news,istochnik,url,autor,mail from news WHERE TO_DAYS(post_date) < TO_DAYS(\'$dateF\') order by post_date limit $limit,$show_rows";
..и т.д.
MHz:
--- Цитировать ---SELECT post_date FROM news ORDER BY post_date DESC LIMIT 1
--- Конец цитаты ---
По-моему, лучше так ;) :
SELECT max(post_date) FROM news
Навигация
Перейти к полной версии