Нажмите счетчик php mysql? - PullRequest
       39

Нажмите счетчик php mysql?

3 голосов
/ 01 сентября 2009

Привет, я искал простой способ отслеживать клики по ссылке и хранить, сколько раз ссылка была нажата в базе данных mysql. У кого-нибудь есть твердый подход, как это сделать?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 01 сентября 2009

Одной из самых важных вещей, которую вам необходимо учитывать, является масштабирование - в зависимости от того, сколько у вас пользователей, вы можете сделать что-то простое, например:

Начальное создание страницы (администратор)

INSERT INTO visit_track_table (id, count, url) VALUES (1, 0, 'page.php');

Обновление страницы (пользователь)

UPDATE visit_track_table SET count=count+1 WHERE url='page.php';

Проблема в том, что эта строка должна быть заблокирована для каждого посетителя на странице.

Лучшим подходом является определение масштабируемой сегментации, которая периодически пересчитывается для получения общего итога. Самый простой способ сделать это - предоставить случайный суффикс, чтобы меньшее число одновременно работающих пользователей блокировало одну и ту же строку базы данных.

Масштабируемость

UPDATE visit_track_table SET count=count+1 WHERE url='page.php-N'

В этом запросе суффикс -N будет сгенерирован настроенным параметром, который будет варьироваться от -0 до -100, если вы хотите выделить 100 строк на страницу. Оптимальное значение N будет зависеть от вашей пользовательской базы.

Подсчет (возможно, периодически выполняется cron-работой)

SELECT SUM(count) AS M FROM visit_track_table WHERE url LIKE 'page.php-%'

UPDATE visit_track_table SET count=M WHERE url='page.php'

РЕДАКТИРОВАТЬ: Да, вам нужна промежуточная страница с записью URL-адреса, на который вы направляетесь.

3 голосов
/ 01 сентября 2009

Да. У вас есть ссылка, чтобы перейти к сценарию перенаправителя на вашем сайте, который вставляет запись в таблицу отслеживания и перенаправляет пользователя в окончательное местоположение ссылки.

1 голос
/ 01 сентября 2009

Вы можете использовать ajax или страницу возврата:

Bounce: ссылка пересылается на встречный скрипт, например, http://www.your-domain.com?click_count.php?forward=http://another-domain.com/destination.html

с использованием sql как INSERT INTO clicks ('http://another-domain.com/destination.html',1) ON DUPLICATE KEY UPDATE clicks=clicks+1

Ajax: вы можете добавить событие javascript onclick для отправки вызова ajax, возможно, того же сценария счетчика кликов, а затем вернуть true, чтобы перейти по ссылке.

Метод Ajax требует javascript, что, очевидно, может оказаться недостаточно надежным, и в этом случае отскок-скрипт подойдет, и на самом деле он будет незаметен

...