241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868

Счётчик просмотров

29.09.2010, 00:51. Показов 18270. Ответов 89
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу сделать счётчик просмотров, есть описание и ссылка на подробности и от того сколько нажата ссылка на подробности такое кол-во раз и увеличивать счётчик, только не на странице подробности, а на странице в которой находится ссылка на подробности,то есть как здесь например.

Написал так, но обновление идёт сразу на всех постах находящихся на странице, а не на
тех на которых нажал на кнопку подробнее зашёл на этот пост.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
$enlarge = $rez['obnovlenie']+1;
$obnovlenie_rez = mysql_query("UPDATE lessons set obnovlenie = '$enlarge' where  id = id ");
echo 'Просмотров: '.$enlarge;
 
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
 
}
Миниатюры
Счётчик просмотров  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2010, 00:51
Ответы с готовыми решениями:

Счётчик просмотров
Как написать счетчик просмотров по типу: Просмотров за 24 часа: Посетителей за 24 часа: Просмотров за 7 дней: Посетителей за...

Счётчик уникальных просмотров новости
Привет. Есть страница с новостями, при просмотре полной новости хочу вести учёт уникальных просмотров. Простые просмотры записываю...

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

89
191 / 191 / 31
Регистрация: 04.10.2010
Сообщений: 505
04.10.2010, 23:43
Студворк — интернет-сервис помощи студентам
Ну тут какая ситуация... Сейчас я пересмотрел суть дела)))

В случаем с не зарегистрированным пользователем есть такое решение. Его также добавить в таблицу пользователей и по умолчанию (если человек не авторизовался) писать в сессию данные Гость.
А если человек авторизовался, то писать в сессию его данные.

Создается таблица в базе данных, с двумя полями id_user и id_новости или чего там.
При клике на подробнее делается проверка на то что кликал ли раньше пользователь.
Если кликал, то ни чего не делаем.
Если не кликал, то записываем в эту таблицу новую строку.

Вот и всё.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 23:43
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
2. считать по одному щелчку от каждого пользователя (т.е если один пользователь посетит страницу еще раз счетчик не сработает)
Вот для этого и нужна идентификация пользователей:

Цитата Сообщение от romchiksoad Посмотреть сообщение
Для этого, помимо количества просмотров, нужно будет хранить какой-нибудь идентификатор пользователя ( ID, login и т.п. ).
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 23:51
да спасибо ребята, кажется понял.
еще вопрос, у меня в БД 5 полей - id, заголовок, статья, фото, время
сюда надо добавить еще напр. IP пользователя, если он не зарегистрирован
или данные пользователя - если регистрирован, так?

Добавлено через 2 минуты
хотя собирать в БД столько IP-шников не разумно, тыжеловато будет ч/з некоторое время или придется сбрасывать..
можно как-нить обходить этот момент? (для не зарегистрированных конечно)
0
191 / 191 / 31
Регистрация: 04.10.2010
Сообщений: 505
04.10.2010, 23:52
Тебе надо создать таблицу пользователей(если ее нету)
А так же создать таблицу для связи пользователей и текущей таблицы.
Давай завтра я пример сделаю... сейчас что-то спать хочется))
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 23:54
Цитата Сообщение от hellpass Посмотреть сообщение
В случаем с не зарегистрированным пользователем есть такое решение. Его также добавить в таблицу пользователей и по умолчанию (если человек не авторизовался) писать в сессию данные Гость.
И сколько же таких гостей может быть? Если писать одно и тоже, то после того как один из "Гостей" посмотрит, просмотр второго человека не за считается.
Цитата Сообщение от hellpass Посмотреть сообщение
При клике на подробнее делается проверка на то что кликал ли раньше пользователь.
Смотря как проверять. Если по данным из БД, то это будет работать не так как хочется, потому, что не удастся 100% опознать пользователя . Если делать пометки в сессиях, то они могут много места занимать на сервере, т.к. посетитель может пересмотреть все новости за один "присест". Ладно если новостей не много...

Единственное более-менее оптимальное решение - регистрация/авторизация на сайте.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 23:54
Syltan, что такое - obnovlenie.
если это ячейка, то как можно увеличивать просто ячейку, а не содержание.
мож я че то не понимаю, я про запись
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1 WHERE id=".$id);
вот про эту часть - obnovlenie = obnovlenie+1
0
191 / 191 / 31
Регистрация: 04.10.2010
Сообщений: 505
04.10.2010, 23:56
Все правильно увеличивается.
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1 WHERE id=".$id);
obnovlenie - тип integer
И чтобы увеличить посещение, так будет в самый раз.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 23:56
Love_and_Peace, по ip-адресам не вариант. На одном ip-адресе может быть целый... завод
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
05.10.2010, 00:01

Не по теме:

romchiksoad, не в тему, не понимаю музыку SYSTEM OF DOWN.
рекомендую HYPOCRISY :)



Добавлено через 35 секунд
Цитата Сообщение от romchiksoad Посмотреть сообщение
Love_and_Peace, по ip-адресам не вариант. На одном ip-адресе может быть целый... завод
ну да, точно

Добавлено через 1 минуту
Цитата Сообщение от hellpass Посмотреть сообщение
obnovlenie - тип integer
ну если это автоэкскремент, то да. а так получается пустоту с типом интегер увеличиваем на 1 )

Добавлено через 1 минуту
> Единственное более-менее оптимальное решение - регистрация/авторизация на сайте.
неужели нельзя решить по другому этот вопрос. это минус РНР?
0
05.10.2010, 00:03

Не по теме:

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
romchiksoad, не в тему, не понимаю музыку SYSTEM OF DOWN.
System Of A Down
Так Вас никто и не заставляет её понимать или слушать.

0
05.10.2010, 00:06

Не по теме:

romchiksoad, это я так, не бери в голову )

0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
05.10.2010, 00:06
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
ну если это автоэкскремент, то да. а так получается пустоту с типом интегер увеличиваем на 1 )
MySQL сначала прибавит единицу к существующему значению, а потом сохранит новое значение в таблице. Для этого не нужно поле с AUTO_INCREMENT. И пустоты там не может быть. Там тип integer ( целое число ) "пустота" - значит ноль. MySQL умеет преобразовывать типы на лету, так же как и PHP.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
05.10.2010, 00:09
может можно через HTTP незаметно какой нить маяк залить к пользователю?

Добавлено через 58 секунд
> Там тип integer ( целое число ) "пустота" - значит ноль. MySQL умеет преобразовывать типы на лету, так же как и PHP.
понял
0
05.10.2010, 00:09

Не по теме:

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
romchiksoad, это я так, не бери в голову )
Для этого на форуме есть "Личные сообщения". Хотите об этом поговорить - пишите в ЛС.

0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
05.10.2010, 00:11
в роли маяка - какой-нить случайный набор символов
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
05.10.2010, 00:12
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
может можно через HTTP незаметно какой нить маяк залить к пользователю?
Нет. Единственный "маяк", который можно залить пользователю через HTTP - это COOKIE. По крайней мере пока в голову больше ничего не пришло.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
05.10.2010, 00:14
Цитата Сообщение от romchiksoad Посмотреть сообщение
Для этого на форуме есть "Личные сообщения". Хотите об этом поговорить - пишите в ЛС
все, понял. просто увидел метал-брата и решил посоветовать, то что сам слушаю. тема close
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
05.10.2010, 00:17
Цитата Сообщение от romchiksoad Посмотреть сообщение
Нет. Единственный "маяк", который можно залить пользователю через HTTP - это COOKIE. По крайней мере пока в голову больше ничего не пришло.
Не мне, а разработчикам этого протокола.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
05.10.2010, 00:21
> Единственный "маяк", который можно залить пользователю через HTTP - это COOKIE
почему я про маяк говорю, инет - это сеть, также как и локалка. по локалке можно заливать даже админу все что угодно (по моему определяется по IP).
тут тоже думаю, увидел новый IP залил ему номер, про IP забыл.
правда этот номер опять таки придется в БД хранить...

Добавлено через 2 минуты
хранить не в куках, а где нить в дебрях папок, чтобы не догадался
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
05.10.2010, 00:22  [ТС]
Скажите, в базе данных ссылка должна выглядеть так, как вы написали, я имею ввиду:

HTML5
1
2
<div align="right">
 <a class="podrob" href="/videolessons/1_1.php?id=1">Подробнее </a> ......
Если вторая ячейка базы данных, тогда ссылка должна выглядеть так:
HTML5
1
href="/videolessons/1_1.php?id=2
То есть кода пхп не должно быть в ячейках в которых размещаются выводы после нажатия подробнее?

2) Как оформить вывод,чтоб работал.
PHP
1
2
3
4
5
6
7
8
9
10
/*--------------------------------------------------------------------------------------*/
$prosmotrov = mysql_query("select * FROM lessons",$connect);
//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$rez = mysql_fetch_array($prosmotrov,$connect);
 
echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2010, 00:22

Счетчик просмотров !
Проблема такова хочу сделать количество просмотров что бы отображалось вывел табличку в цикл в базц поместил 2 пункта для пробы в 1м...

Количество просмотров
Есть новости, каждая из которых доступна по адресу http://sait/news.php?id= ID Как сделать подсчет переходов к новости (подсчет кол-ва...

счетчик просмотров
у меня в скрипте имеется счетчик просмотров статьи. он работает, но не так как хотелось бы. т.е., он регистрирует каждое открывание...

Узнать число просмотров
Доброго времени суток господа! Мучаюсь тут с одной головоломкой, суть работы такая. Узнаем сколько просмотров, если 0 то просмотров,...

Счетчик уникальных просмотров статьи
Здравствуйте. Можете подсказать как лучше реализовать счетчик уникальных просмотров статьи? В одной статье пишут хранить данные в БД,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru