Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP, MySQL - 2 вопроса

2.2K
29 августа 2005 года
Web-master
113 / / 23.12.2004
Доброе время суток :)
У меня два вопроса:

1. В таблице базы mysql`а есть поля: id, year, news.

примерный вид записей:
 
Код:
id  |  year | news
  1 |  2004 |   text
  2 |  2004 |   text
  3 |  2005 |   text
  4 |  2005 |   text
  5 |  2006 |   text


Как видно в поле year разные года добавления записей в табличку. Я не могу сообразить, как сделать выборку из таблички, что бы показать какие года присутвуют в ней (типа архив по годам). Вот пример:
 
Код:
Архив:
2006
2005
2004


2. Просто теоретический вопрос, это так, взбрело в голову, не могу разобраться :)
Сам вопрос: Каким образом определяется позиционирование в системе рейтингов например LiveInternet.ru (http://www.liveinternet.ru/?novgorod.ru : novgorod.ru занимает 28 место в категории «Города и регионы».) Как это определяется ?

Всем спасибо за проявленный интерес к теме.
832
29 августа 2005 года
Carpus
390 / / 14.04.2005
1. select distinct `year` from `tbl_name`
2. по количеству посетителей, вроде бы
2.2K
29 августа 2005 года
Web-master
113 / / 23.12.2004
Цитата:
Originally posted by Carpus
1. select distinct `year` from `tbl_name`
2. по количеству посетителей, вроде бы



Благодарю за ответ :)

Насчет 2-го вопроса: Как именно определяется, что стоит именно на 28-м месте ?

8
29 августа 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by Web-master
Как именно определяется, что стоит именно на 28-м месте ?


Это наверное каждый сам по своему пишет...
Предполагаю, что они подсчитывают ежесуточно все клики, суммируют и записывают по каждому аккаунту в сводную таблицу. Соответственно, ранжируют.

8
29 августа 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by Web-master

Насчет 2-го вопроса: Как именно определяется, что стоит именно на 28-м месте ?


Дошла суть вопроса :D
Я бы сделал временную таблицу с представлением выборки из сводной таблицы, и ключевым полем просто автоинкремент. А уж из неё выбрал бы нужный идентификатор и в автоиннкрементном поле была бы как раз позиция в рейтинге.

2.2K
29 августа 2005 года
Web-master
113 / / 23.12.2004
хм, интересно, интересно 8)
8
29 августа 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by Web-master
хм, интересно, интересно 8)


Т.е., дано нам, скажем, идентификатор аккаунта - 1000-лохматый, которые лежат в таблице accounts.id.
Пишем такую беду:
CREATE TEMPORARY TABLE tmp
(a INT AUTO_INCREMENT, PRIMARY KEY(a))
SELECT id FROM accounts ORDER BY <счётчик> DESC

И сразу выбираем его из этой таблы:
SELECT a FROM tmp WHERE id = 1000-лохматый

253
30 августа 2005 года
Proger_XP
1.5K / / 07.08.2004
В MySQL есть функция count(), которая определяет сколько записей подходятт по запросу
Если написать так:
SELECT FROM `Counters`(`ID`) WHERE `Count` > *название_поля_посетителей_нужного_сайта*
и куда-то(я точно не помню) поставить эту функцию то получим на каком месте сайт - 1
8
30 августа 2005 года
mfender
3.5K / / 15.06.2005
Цитата:
Originally posted by Proger_XP
В MySQL есть функция count(), которая определяет сколько записей подходятт по запросу
Если написать так:
SELECT FROM `Counters`(`ID`) WHERE `Count` > *название_поля_посетителей_нужного_сайта*
и куда-то(я точно не помню) поставить эту функцию то получим на каком месте сайт - 1


Не прокатит.
Допустим, есть таблица:

account | counter
------------------
1 | 3000
2 | 2000
3 | 7000

etc.,
то тут никак COUNT'ом не выберешь. Можно, конечно, загнать сортированный по counter результ в скалярный массив и тупо взять ключ, как знаение позиции... Но, уж больно много геммора...

253
31 августа 2005 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Originally posted by mfender
Можно, конечно, загнать сортированный по counter результ в скалярный массив и тупо взять ключ, как знаение позиции... Но, уж больно много геммора....


Получается что и MySQL будет сортировать и прога?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог