X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Статистика переходов по внешней ссылке
1putnik
1putnik
Topic Starter сообщение 28.11.2012, 0:44; Ответить: 1putnik
Сообщение #1


Всем здравствуйте!
Помогите, пожалуйста, решить проблему:
Есть сайт и на нем не правильно ведется статистика переходов по внешней ссылке. В базе данных есть три столбца: "сегодня", "вчера" и "всего". Записывается только в столбцы "сегодня" и "всего", причем они всегда имеют одинаковые значения, а столбец "вчера" всегда - 0.
В чем может быть проблема в PHP-коде или базе MySQL ?
Привожу кусок кода для обновления статистики, может здесь что не так:
mysql_query("UPDATE adfsr SET clx = clx + 1, allclx = allclx + 1, sum = sum + ".$price.", allsum = allsum + ".$price.", ctr = ".$ctr." WHERE id = ".$sid." LIMIT 1");

clx - переходов сегодня
clx_yday - переходов вчера
allclx - переходов всего
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 28.11.2012, 12:53; Ответить: yury_mw
Сообщение #2


1putnik,
из вашего вопроса не очень понятно как называются у вас поля "сегодня", "вчера" и "всего".

* Подключаем телепатию и недюжинные познания английского

и начинаем подозревать, что этими полями могут быть вот эти:

`clx` int(1) NOT NULL DEFAULT '0',
`clx_yday` int(1) NOT NULL DEFAULT '0',
`allclx` int(50) NOT NULL DEFAULT '0',

Далее рассматриваем ваши запросы к БД и обнаруживаем, что упоминаются только два из них и только тут:

mysql_query("UPDATE advert_tizer SET clx = clx + 1, allclx = allclx + 1, sum = sum + ".$price.", allsum = allsum + ".$price.", ctr = ".$ctr." WHERE id = ".$sid." LIMIT 1");

Т.е. происходит одновременное и безусловное (нет никакой проверки сегодняшние данные мы обновляем или нет) увеличение на единицу полей "сегодня" и "всего" (clx и allclx).
Потому нет ничего удивительного что у вас "сегодня" и "всего" одинаковые.
А поле clx_yday ("вчера") вообще нигде не меняется.
Потому нет ничего удивительного, что у вас "вчера" все время равно нулю.

* Отключаем телепатию и недюжинные познания английского

PS вы подправили свой вопрос и теперь стало понятнее, что телепатия сработала. Поэтому ответ остается прежним.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 28.11.2012, 13:07; Ответить: 1putnik
Сообщение #3


происходит одновременное и безусловное (нет никакой проверки сегодняшние данные мы обновляем или нет) увеличение на единицу полей "сегодня" и "всего" (clx и allclx).
Потому нет ничего удивительного что у вас "сегодня" и "всего" одинаковые.
А поле clx_yday ("вчера") вообще нигде не меняется.
Потому нет ничего удивительного, что у вас "вчера" все время равно нулю.

* Отключаем телепатию и недюжинные познания английского

Ну это понятно. Я просто думал есть какие-то настройки в phpMyAdmin.
yury, может быть подскажите как это реализовать, чтобы clx - обнулялось в 24:00, clx_yday - принимало значение clx в 24:00
Вернее сначало clx_yday - принимало значение clx в 24:00, а затем сразу clx - обнулялось
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 28.11.2012, 14:22; Ответить: yury_mw
Сообщение #4


Ну это понятно. Я просто думал есть какие-то настройки в phpMyAdmin. yury, может быть подскажите как это реализовать, чтобы clx - обнулялось в 24:00, clx_yday - принимало значение clx в 24:00

ОК.
Если это понятно, то следующий момент для понимания это то, что обнулять clx и менять значение clx_yday надо не в 24:00, а
* надо где-то хранить дату, которая соответствует понятию "сегодня" при предыдущем обновлении БД.
* при добавлении очередного перехода по внешней ссылке в базу, надо сверяться совпадает ли это значение с текущей датой и в случае не совпадения выполнять соответствующие переприсваивания (clx_yday = clx и обнуление clx) и после этого обновить значение хранимой даты (см предыдущий пункт).
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 28.11.2012, 18:07; Ответить: 1putnik
Сообщение #5


надо где-то хранить дату, которая соответствует понятию "сегодня" при предыдущем обновлении БД.

Поле clx - это и есть сегодня, только оно совпадает с показаниями поля всего (allclx), так как не обнуляется с наступлением новых суток.
при добавлении очередного перехода по внешней ссылке в базу, надо сверяться совпадает ли это значение с текущей датой и в случае не совпадения выполнять соответствующие переприсваивания (clx_yday = clx и обнуление clx) и после этого обновить значение хранимой даты

А просто переприсвоить ( clx_yday = clx ) с наступлением новых суток нельзя? А затем clx - обнулить?
Статистики по определенной дате на сайте нет, да и не нужно
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 28.11.2012, 19:12; Ответить: yury_mw
Сообщение #6


Поле clx - это и есть сегодня, только оно совпадает с показаниями поля всего (allclx), так как не обнуляется с наступлением новых суток.

* поле "clx" у вас это количество переходов по внешней ссылке за "сегодня", а не дата.
* кто будет на сервере сидеть и караулить не наступили ли новые сутки? Есть конечно всякие примочки для запуска скриптов по расписанию, типа cron-а и jobs-ов, но не думаю, что в данном случае с ними надо заморачиваться, потому как это не просто все и не факт, что вас к этим вещам администратор сервера допустит.
* самый простой вариант это увидеть (не наступили ли новые сутки и не пора ли данные про "сегодня" перебросить во "вчера" и обнулять сегодняшний счетчик) — это при очередном увеличении счетчика и обновлении базы сравнить текущую дату и дату предыдущего обновления БД.
Для этого всего одно поле в БД потребуется добавить и все у вас получится.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 28.11.2012, 19:24; Ответить: 1putnik
Сообщение #7


самый простой вариант это увидеть (не наступили ли новые сутки и не пора ли данные про "сегодня" перебросить во "вчера" и обнулять сегодняшний счетчик) — это при очередном увеличении счетчика и обновлении базы сравнить текущую дату и дату предыдущего обновления БД.

Как это сделать?

Для этого всего одно поле в БД потребуется добавить

Какое поле нужно?
Увы я не програмист. Я редактирую PHP методом тыка.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 29.11.2012, 12:54; Ответить: 1putnik
Сообщение #8


Все, проблема решена

yury был прав на счет cron

В установке скрипта я упустил запуск планировщика cron, что было описано в инструкции.

Тема закрыта !

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тысячи ботовых переходов на сайт
18 Suagaring 4538 26.3.2024, 21:42
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Продам англоязычный трафик на ваши сайты - стоимость 1$ за 1000 переходов
0 Tutich 1704 29.4.2022, 19:34
автор: Tutich
Открытая тема (нет новых ответов) Ukr Private Proxy 4g Lifecell, Kyivstar, Vodafone (ТЕСТ, смена по ссылке, ротация)
Продам Личные Украинские приватные мобильные прокси 4g Lifecell, Kyivs
1 Kostyaxxxx 4245 20.6.2021, 20:26
автор: Kostyaxxxx
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПолучайте 50% с каждого лида по Вашей реферальной ссылке. РА "Клиенты лучше кликов"!
3 Клиенты_лучше_кликов 1387 30.3.2021, 18:28
автор: Coffee
Открытая тема (нет новых ответов) Проставляю ссылки в Reddit с 10 upvoted по каждой ссылке
1 Tutich 1842 16.7.2020, 11:38
автор: Zhezkazganetcs


 



RSS Текстовая версия Сейчас: 29.3.2024, 15:03
Дизайн