Не могу составить сложный sql запрос

Статус
В этой теме нельзя размещать новые ответы.

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
скрипт должен проверять кол-во страниц в индексе, и если кол-во изменилось, выдавать соответствующий меседж.

Есть таблица в которой поля
id siteid value date_checked

То есть существуют сайты (siteid), для которых проверяется Value- значение индекса. И указывается дата, когда это значение было проверено. Я застрял на таком моменте.... как составить sql запрос, чтобы брать самую большую date_checked. То есть дату последней проверки. И сравнивать Value с предыдущей проверкой.
Вообщем!! :D как написать запрос, чтобы проверить есть ли положительная динамика. Меняется ли value от раза к разу, и в какую сторону...
 
phillip, вообще, что-то вроде:
- будет выдавать данные по последней проверки и предпоследней, а в скрипте уже сверяешь их.
Или тебе в этом же запросе надо проверять?
 
ну мне хоть как-нибудь.... лишь бы работало. спасибо, попробую что-нить подобное замутить
 
Мне кажется это будет не самый оптимальный вариант. Придется хранить айди последнее просмотренной тобой записи и делать несколько запросов(или один сложный). Лучше для каждого сайта сделай поле и в нем храни массив(сереализованный) из даты и к-ва страниц. Когда будешь показывать результаты, вычитай из последнего кол-ва предыдущее и показывай это число рядом в скобочках. Н-р: 435(+45) или 567(-34). Так будет красивеее.
Да и график легко можно будет рисовать...
 
Лучше для каждого сайта сделай поле и в нем храни массив(сереализованный) из даты и к-ва страниц
не совсем понял, как это
 
не совсем понял, как это

например, 01.01.2009 у вас было 400 страниц, а 02.01.2009 стало 456 страниц. У тебя получается масcив
Код:
$arr = array("01.01.209"=>"400", "02.01.2009"=>"456")
Но мы не можем сохранить массив в таком виде в базу, но можно его сериализовать и привести его к строке
Код:
$array_to_str = serialize($arr)
Эту переменную спокойно можно хранить в БД, а когда тебе вновь понадобится этот массив, его можно вновь получить если полученную строку пропустить через функцию unserialize
Код:
$arr = unserialize($array_to_str)
после этого его можно изменить и заапдейтить в базу.

Это способ удобен тем, что с массивом удобно работать и используется только одна запись в БД(соответствено только 1 запрос). Правда сереализованные данные весят больше, но это уже другая история =)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху