Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/92: Рейтинг темы: голосов - 92, средняя оценка - 4.70
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868

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

29.09.2010, 00:51. Показов 18058. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru