Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.17;
Скачать: CL | DM;

Вниз

Помогите, SQL, php Нужен совет! дело такое.   Найти похожие ветки 

 
Style ©   (2003-10-20 14:49) [0]

Делаю рейтинги сайтов
http://hch.ru/topcites/index.php
в общем в MySQL создал 3 таблицы

1-я top_cites
CiteID (double), CiteName (varchar), CiteUrl (varchar), DateReg (int 11), Name (varchar), Password (varchar), CatID - категория сайта, ImageID - баннер ...

2-я top_ips
CiteID (double), IP (varchar), LastHit (int 11) -- Unixtime последнего клика для IP

3-я top_hist
CiteID, Date (int 11) -- Unixtime текущая дата , Hits (double) - кол-во хитов, Hosts (double) -- кол-во хостов

В общем в таблицу top_cites записываются сами сайты
top_ips - записываются уникальные IP для определенного CiteID
в top_hist записываются кол-во хитов и хостов для СiteID на текущую дату.

Пытаюсь вывести отчет

select t.CiteID, t.CiteURl, t.DateReg, t.CiteName, IfNULL( h.Hosts, 0 ), IfNULL( h.Hits, 0 ) from
top_cites as t
LEFT JOIN top_hist as h ON (h.citeid = t.citeid)
WHERE Date_format( FROM_UNIXTIME( h.Date ) , "%Y-%m-%d" ) = Date_format( Now( ) , "%Y-%m-%d" ) ORDER BY h.HOSTS DESC , h.Hits DESC , t.CiteName;

Селект проходит удачно получаю список сайтов
Но если Кол-во в top_hist нет записи на текущую дату, то такие
сайты не отображаются вместо CiteName, 0, 0

Попробывал по другому

select t.CiteID, t.CiteURl, t.DateReg, t.CiteName, IfNULL( h.Hosts, 0 ), IfNULL( h.Hits, 0 ) from
top_cites as t
LEFT JOIN top_hist as h ON (h.citeid = t.citeid)
WHERE Date_format( FROM_UNIXTIME( h.Date ) , "%Y-%m-%d" ) = Date_format( Now( ) , "%Y-%m-%d" ) OR h.Date IS NULL ORDER BY h.HOSTS DESC , h.Hits DESC , t.CiteName;

Тоже самое :(

Хотел использовать UNION

( select t.CiteID, t.CiteURl, t.DateReg, t.CiteName, IfNULL( h.Hosts, 0 ), IfNULL( h.Hits, 0 ) from
top_cites as t
LEFT JOIN top_hist as h ON (h.citeid = t.citeid)
WHERE Date_format( FROM_UNIXTIME( h.Date ) , "%Y-%m-%d" )
= Date_format( Now( ) , "%Y-%m-%d" ) )
UNION
(
select t.CiteID, t.CiteURl, t.DateReg, t.CiteName, Hosts = 0, Hits = 0 from
top_cites as t
LEFT JOIN top_hist as h ON (h.citeid <> t.citeid)
WHERE Date_format( FROM_UNIXTIME( h.Date ) , "%Y-%m-%d" )
= Date_format( Now( ) , "%Y-%m-%d" ) )
)
ORDER BY h.HOSTS DESC , h.Hits DESC , t.CiteName

Так вот у хостера на столько старый MySQL что даже UNION не поддерживает - короче 3.21

NOT EXIST не поддерживает
Вложеные селекты тоже :(

Помогите, дайте совет!

1) Сменить провайдера
2) Замучить infobox.ru чтобы они сменили мускул
3) В PHP по очереди выполнить 2 селекта и самостоятельно
выполнить UNION двух массивов с данными
Самому написать LIMIT, и сортировку QuickSort для того чтобы сортировать объединеные массивы.
4) В момент UPDATEа top_hist проверять существование записи и в случае если такой нет. добавлять строчку CiteID, Дата, 0, 0
5) другой вариант.???


 
Style ©   (2003-10-20 15:23) [1]

Не ну чего ни хто не поможеть???


 
Style ©   (2003-10-20 16:14) [2]

Не ну хоть напишите что-нибудь :)


 
Style ©   (2003-10-21 10:27) [3]

оххх :(

*достает носовой платок :(


 
isko ©   (2003-10-21 10:33) [4]

кто то сказал - он делает! делает! а не просит...


 
Style ©   (2003-10-21 10:34) [5]

2 isko - дык посоветоваться, то можно???


 
isko ©   (2003-10-21 10:37) [6]

Style © -
я так пишу потому что не могу посоветовать)


 
Style ©   (2003-10-21 10:41) [7]

Да тут без пива так быстро не разобраться ;)
А еще надо делать историю рейтингов, за месяц, за год, за неделю.
Коеффициент + или - хостов за определенный период..

Вот и думай чего делать.?

На PHP то все не свалишь? Хотелось бы более способный SQL.


 
Style ©   (2003-10-21 11:57) [8]

Так чего пиво не кому не надо штоль???


 
Style ©   (2003-10-24 17:33) [9]

Уууу???

С рыбкой пиво то! ;P



Страницы: 1 вся ветка

Текущий архив: 2003.11.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
14-56810
Карелин Артем
2003-10-24 14:47
2003.11.17
Посоветуйте систему контроля версий. Дельфи.


3-56516
analyser
2003-10-24 16:43
2003.11.17
ADO,


3-56473
СержК
2003-10-30 08:19
2003.11.17
Не могу законнектиться к БД


1-56592
md
2003-11-06 10:20
2003.11.17
MapViewOfFile


14-56890
VEG
2003-10-23 17:31
2003.11.17
БЕДСТВУЮ!!!