agruts
Новичок
удаление старых объектов из таблицы [Joomla]
задача такова: в силу особенностей шаблона на главной может быть опубликовано только определенной кол-во новостей, скажем 10.
насколько всем известно, публикованные на главной объекты помещаются в jos_content_frontpage. (
)
я сделал отдельный файл, который вызывается при обновлении главной страницы:
При добавлении нового объекта в таблицу, наиболее старый по дате из нее удаляется, таким образом имеем постоянное кол-во объектов.
Но это работает только если в запросе нет WHERE publush_up <= NOW(). (см. закомметированные строки)
А этот параметр необходим, для того, чтобы не удалялись объекты из таблицы, если создан новый объект с запланированной публикацией, скажем на завтра в 08:00 (опубликованный, но не активный), который также помещается в таблицу, но не выводится на сайт до наступления определенной даты. Иначе, на главной будет отображаться меньше новостей, на столько, сколько объектов запланировано на публикацию.
если поставить в запрос SELECT_ "...WHERE publush_up <= NOW()" то все нормально, будущие не учитываются, но вот и старые, при наступлении момента публикации новых -не удаляются (запрос DELETE не работает).
Помогите разобраться, а то я уже тупеть начинаю
-~{}~ 03.03.09 22:40:
ОК, тогда по другому сформулирую вопрос:
кто-нибудь возьмется за решение этой задачи небезвозмездно?
(yandex.money, webmoney)
с предложениями пишите на agruts at mail dot ru
очень срочно надо
задача такова: в силу особенностей шаблона на главной может быть опубликовано только определенной кол-во новостей, скажем 10.
насколько всем известно, публикованные на главной объекты помещаются в jos_content_frontpage. (

я сделал отдельный файл, который вызывается при обновлении главной страницы:
PHP:
<?php
//$query = "SELECT COUNT(*)"
// . "\n FROM jos_content_frontpage" ;
$query = "SELECT COUNT(*) FROM jos_content_frontpage_ WHERE publush_up <= NOW ()";
$database->setQuery( $query );
$count = intval( $database->loadResult() );
if ($count > 10) {
$limit = $count - 10;
//$query="DELETE FROM jos_content_frontpage"
// . "\n ORDER BY content_id ASC LIMIT $limit";
$query="DELETE FROM jos_content_frontpage WHERE publush_up <= NOW()"
. "\n ORDER BY content_id ASC LIMIT $limit";
$database->setQuery( $query );
if (!$database->query()) {
echo "<script> alert('".$database->getErrorMsg()."'); window.history.go(-1); </script>\n";
}
}
?>
Но это работает только если в запросе нет WHERE publush_up <= NOW(). (см. закомметированные строки)
А этот параметр необходим, для того, чтобы не удалялись объекты из таблицы, если создан новый объект с запланированной публикацией, скажем на завтра в 08:00 (опубликованный, но не активный), который также помещается в таблицу, но не выводится на сайт до наступления определенной даты. Иначе, на главной будет отображаться меньше новостей, на столько, сколько объектов запланировано на публикацию.
если поставить в запрос SELECT_ "...WHERE publush_up <= NOW()" то все нормально, будущие не учитываются, но вот и старые, при наступлении момента публикации новых -не удаляются (запрос DELETE не работает).
Помогите разобраться, а то я уже тупеть начинаю

-~{}~ 03.03.09 22:40:
ОК, тогда по другому сформулирую вопрос:
кто-нибудь возьмется за решение этой задачи небезвозмездно?
(yandex.money, webmoney)
с предложениями пишите на agruts at mail dot ru
очень срочно надо