Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

Помогите, 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
1-56567
Dimmu
2003-11-06 12:47
2003.11.17
Как сделать CheckListBox с несколькими галочками.


6-56797
DrFox
2003-09-19 19:25
2003.11.17
Как использовать Socket


14-56819
Style
2003-10-20 14:49
2003.11.17
Помогите, SQL, php Нужен совет! дело такое.


1-56613
Zorlag
2003-11-05 19:59
2003.11.17
Помогите, пожалуйста с отправкой письма через Delphi!


3-56515
ss300
2003-10-27 17:21
2003.11.17
DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский