RSS граббер

#
Re: RSS граббер
CCron, каким образом Вы выводите количество?
#
Re: RSS граббер
Так
$mysql = new MySQL();
$mysql->select * from information_items_table WHERE information_blocks_id = 27 and 'information_items_date' < (select * from information_items_table WHERE information_blocks_id = 27 ORDER BY 'information_items_date' ASC  LIMIT 10);


Кстати где тут прописывать кол-во новостей, которые нужно оставлять?
И какие ошибки были в выдержки из RSS грабера выше?
$mysql = new MySQL();

$query = "SELECT count(*) as count FROM information_items_table WHERE information_blocks_id = 27";

$rez = $mysql->select($query);

if ($row = mysql_fetch_assoc($rez))
{
if($count_del > 0)
{
$query = "DELETE FROM information_items_table WHERE information_blocks_id = 27 ORDER BY 'information_items_date' ASC  LIMIT $count_del";
$mysql->query($query);
}
#
Re: RSS граббер
CCron, запрос
select * from information_items_table WHERE information_blocks_id = 27 and 'information_items_date' < (select * from information_items_table WHERE information_blocks_id = 27 ORDER BY 'information_items_date' ASC  LIMIT 10);

не должен работать(возникает ошибка sql). Зачем добавлять сравнение даты, если можно сразу указать порядок сортировки в выборке?
Для вывода количества и задания количества удаляемых элементов используйте:
$mysql = new MySQL();

$query = "SELECT count(*) as count FROM information_items_table WHERE information_blocks_id = 27";

$rez = $mysql->select($query);

if ($row = mysql_fetch_assoc($rez))
{

echo $count = $row['count']; //общее количество всех элементов
echo $count_del = $count - 10; /* кол-во удаляемых минус 10, которые оставляем */


if($count_del > 0)
{
$query = "DELETE FROM information_items_table WHERE information_blocks_id = 27 ORDER BY 'information_items_date' ASC  LIMIT $count_del";
$mysql->query($query);
}
}
#
Re: RSS граббер
Выше приведенный скрипт, удаляет свежие новостей, и оставляет 10 старых. А надо наоборот. Как сделать?
#
Re: RSS граббер
CCron, при тестировании данный скрипт удалял все записи кроме 10 самых поздних по дате. Сообщите данные доступа к разделу администрирования и адрес страницы с проблемой на адрес службы тех. поддержки.
#
Re: RSS граббер
natalya служба потдержки продемонстрировала, что SELECT выбирает 10 самых старых новостей, но... выбирать та он выбирает, а если изменить потом на DELETE то он все равно удаляет, почему-то 10 свежих новостей. Мистика...
$mysql = new MySQL();

$query = "SELECT count(*) as count FROM information_items_table WHERE information_blocks_id = 27";

$rez = $mysql->select($query);

if ($row = mysql_fetch_assoc($rez))
{

echo $count = $row['count']; //общее количество всех элементов
echo $count_del = $count - 10; /* кол-во удаляемых минус 10, которые оставляем */

if($count_del > 0)
{
$query = "DELETE FROM information_items_table WHERE information_blocks_id = 27 ORDER BY 'information_items_date' ASC  LIMIT $count_del";
$mysql->query($query);

$sel = $mysql->select($query);
while($row_sel = mysql_fetch_assoc($sel))
{
print_r($row_sel);
}
}
}
Модератор
#
Re: RSS граббер
CCron,
Судя по спецификации все сделано верно:
http://dev.mysql.com/doc/refman/4.1/en/delete.html

Нужно вручную выполнить запросы в базе и посмотреть поведение.
Модератор
#
Re: RSS граббер
и тут же вопрос, а зачем Вы делаете:
$sel = $mysql->select($query);
while($row_sel = mysql_fetch_assoc($sel))
{
print_r($row_sel);
}
}
}


после
$query = "DELETE FROM information_items_table WHERE information_blocks_id = 27 ORDER BY 'information_items_date' ASC  LIMIT $count_del";
$mysql->query($query);


Вы же повторно выполняете запрос на удаление.
#
Re: RSS граббер
А какой файл надо создать, я что-то не понял, и где, чтобы прописать в нем код скрипта граббера?
Модератор
#
Re: RSS граббер
AIPNZ,
Пример импорта RSS есть в стандартном демо-сайте 5.0 (внутри раздела /news/ в структуре). Если нужно, чтобы запуск был по крону - руководство по интеграции, стр. 55 (файл можно создавать, например, в корне сайта или в некой директории, недоступной через web).
Авторизация