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

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

29.09.2010, 00:51. Показов 17637. Ответов 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
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
29.09.2010, 07:44
дык у тебя здесь вывод постов идет, зачем увеличивать счетчик при выводе списка постов?
его надо увеличивать при выводе подробного описания поста (т.е. после клика на "подробности")
и запрос на обновление будет выглядеть примерно так:
PHP
1
mysql_query("UPDATE lessons set obnovlenie = obnovlenie + 1 where  id = {$_GET['id']}");
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
29.09.2010, 16:55  [ТС]
Написал так:
PHP
1
2
3
4
5
6
7
8
9
10
//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$prosmotrov = mysql_query("select * FROM lessons",$connect);
$rez = mysql_fetch_array($prosmotrov);
 
mysql_query("UPDATE lessons set obnovlenie = obnovlenie + 1 where  id = {$_GET['id']}");
echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
}
Выдаёт ошибку:

Notice: Undefined index: id in z:\home\sitik.ru\www\blocks\kontent.php on line 42
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: enlarge in z:\home\sitik.ru\www\blocks\kontent.php on line 43

Добавлено через 54 минуты
Вот вложил архивом, не получается сделать чтоб считалось кол-во просмотров после нажатия на кнопку просмотров на один из постов, именно после нажатия на кнопку Подробнее.
[Ссылка удалена!]
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
29.09.2010, 18:33
PHP
1
2
3
4
5
6
7
<?
//Увеличиваем число просмотров
mysql_query("UPDATE tnews SET views=views+1 WHERE id='".$id."'");
  }
  else {echo 'Новостей нет';}
}
?>
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
29.09.2010, 22:09  [ТС]
Подскажите пож на моём коде,вот архив.
Вложения
Тип файла: rar s.ru.rar (96.5 Кб, 33 просмотров)
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
04.10.2010, 02:16  [ТС]
Написал так в коде:

PHP
1
2
3
4
5
6
7
8
9
$prosmotrov = mysql_query("select * FROM lessons",$connect);
//Вывод постов
for($i = 0; $i < $num; $i++)  
{  
$rez = mysql_fetch_array($prosmotrov);
//$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
//echo 'Просмотров: '.$enlarge;
if(isset($postrow[$i]['id'])) echo  '&nbsp;'.$postrow[$i]['text'].'<br/>';
}
В базе данных для теста, такая запись в поле text.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?>        
<div class="zagolovok_kyrsa">Заголовок 1</div>
</br>
<div align="justify" class="shrift">
Случилось то, чего <b>так долго ждали в Рунете,</b> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
Невероятный, потрясающий подарок всем, кто интересуется &nbsp <b>заработками в Сети!..</b>
</div>
<div>&nbsp;</div>
<div align="right"> <a class="podrob" href="/videolessons/1_1.php">Подробнее </a><span class="skobki">>></span></div>
<br />
Ошибок не выдаёт но счётчик не работает.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 03:48
вот как я сделал:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    function show_one_news($id) {
    
        $view = 0;    // задаем число просмотров
        mysql_connect('localhost', 'root', '') or die ('Ошибка подключения с МуСКуЛом');
        mysql_select_db('news_line') or die ('Ошибка подключения с БД');
 
        $query_2 = "SELECT * FROM `news` WHERE `id` = '$id' "; 
        
        $res = mysql_query($query_2);
        if(!$res)  die ('Не удалось отправить запрос!' . mysql_error());
        $row = mysql_fetch_array($res);
        $view = $row[5];   // у меня это 5-ый столбец
        $view++;   // увеличиваем
                          mysql_query("UPDATE news SET view = $view WHERE id = $id");
                          ............................// далее уже свой код или закрываешь запрос..
далее, в ф-ии отображения главной страницы пишем

PHP
1
2
3
.....................// код
echo 'просмотров: '.$row[5].'';
.....................// код
у меня под картинкой выводится число просмотров

Добавлено через 9 минут
тока счетчик реагирует и на обновления.
т.е зашел на страницу отдельного просмотра 1 раз, если допустим обновил страницу 3 раза, выходишь на главную стр., а там показ. что статья прочитана 3 раза.
как это исправить незнаю.
мож. добрые люди подскажут

Добавлено через 11 минут
немного мысли вслух
обновление это как бы новое обращение к серверу, и он думает что страницу заново открывают.
но в первый раз страницу открываю по ссылке, а 2-ой с самой же страницы.
как помочь серверу различать эти запросы, чтобы при обновлении число просмотров не увеличивалось?
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 06:48
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
тока счетчик реагирует и на обновления.
т.е зашел на страницу отдельного просмотра 1 раз, если допустим обновил страницу 3 раза, выходишь на главную стр., а там показ. что статья прочитана 3 раза.
как это исправить незнаю.
мож. добрые люди подскажут
Добавлено через 11 минут
немного мысли вслух
обновление это как бы новое обращение к серверу, и он думает что страницу заново открывают.
но в первый раз страницу открываю по ссылке, а 2-ой с самой же страницы.
как помочь серверу различать эти запросы, чтобы при обновлении число просмотров не увеличивалось?
Как вариант, что бы сохранять состояние между посещениями сайта, то данные можно хранить в БД. При каждом выводе страницы проверять, смотрел ли данный пользователь это или нет.
Если достаточно хранить данные только за эту сессию, то и используйте сессии. Храните в них какой-либо идентификатор того, что просматривают.
Это дело можно немного оптимизировать, если перед запросом к БД или записью в сессии вставить подобный код:
PHP
1
2
3
4
5
6
7
8
9
10
<?php
...
if ( $_SERVER['HTTP_REFERER'] != 'ссылка на текущую страницу' ) {
 
    //Код  счетчика
    //Именно тут будет запись в БД или сессии
 
}
...
?>
Вроде должно проканать! Пробуйте!
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 13:22
Цитата Сообщение от romchiksoad Посмотреть сообщение
Как вариант, что бы сохранять состояние между посещениями сайта, то данные можно хранить в БД. При каждом выводе страницы проверять, смотрел ли данный пользователь это или нет.
> я и так их там храню (поле view в коде). или имеется ввиду другое?
зачем при каждом выводе страницы проверять, смотрел ли данный пользователь страницу или нет,
я ограничение не ставлю - один пользователь - 1 просмотр.


Цитата Сообщение от romchiksoad Посмотреть сообщение
Если достаточно хранить данные только за эту сессию, то и используйте сессии. Храните в них какой-либо идентификатор того, что просматривают.
> если хранить в сессиях инфа же исчезнет в следущий раз. или их по ходу в куки навечно запихнуть??
немного подробней плиз код напишите (а лучше свою мысль подробней, написать сам попробую )
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
04.10.2010, 22:32  [ТС]
Что нужно куда передавать чтоб именно счётчик считал после перехода по ссылке подробнее?
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 22:43
Syltan, не понял, поконкретней пожалста вопрос, что именно не понятно..
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 22:47
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
если хранить в сессиях инфа же исчезнет в следущий раз.
Цитата Сообщение от romchiksoad Посмотреть сообщение
Если достаточно хранить данные только за эту сессию, то и используйте сессии.
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
или их по ходу в куки навечно запихнуть??
Пожалейте пользователей. Им и так много кук пихают на других сайтах. К тому же пользователь может их просто удалить или зайти с другого компьютера.

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
зачем при каждом выводе страницы проверять, смотрел ли данный пользователь страницу или нет,
я ограничение не ставлю - один пользователь - 1 просмотр.
Что бы знать, нужно ли увеличивать счетчик просмотра данной страницы или нет. Если этот пользователь уже смотрел эту страницу, то увеличивать счетчик не нужно.
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
немного подробней плиз код напишите (а лучше свою мысль подробней, написать сам попробую )
Мысль проста: при просмотре нужной страницы делаем запрос к БД ( в Вашем случае ) и узнаем, смотрел ли данный пользователь её( эту страницу ) или нет. Для этого, помимо количества просмотров, нужно будет хранить какой-нибудь идентификатор пользователя ( ID, login и т.п. ). Если сайт довольно часто посещают большое количество пользователей, то это может занимать относительно много памяти и ресурсов системы. Сам запрос на выборку может быть примерно следующего характера:
SQL
1
SELECT * FROM `table` WHERE `table`.`users` = '$_SESSION['user_name']' AND `table`.`page` = 'page.php' LIMIT 1;
А на запись такого:
SQL
1
INSERT INTO `table` SET `table`.`user` = '$_SESSION['user_name']', `table`.`page` = 'page.php';
В общем краткая версия кода для примера:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
error_reporting ( E_ALL );
 
session_start();
//Какой-то код
 
//Соединяемся с MySQL-сервером
mysql_connect( 'host', 'login', 'password' );
mysql_select_db ( 'db' );
mysql_set_charset( 'utf-8' );//Кодировка
 
//Теперь отправляем запрос на выборку
$query = mysql_query ( "SELECT * FROM `table` WHERE `table`.`users` = '{$_SESSION['user_name']}' AND `table`.`page` = 'page.php' LIMIT 1" ) or die ( 'При тесте скрипта необходимо знать все ошибки<br />' . mysql_error() );
 
//Если нет записи, то добавляем её
if ( mysql_num_rows( $query ) == 0 )
 
    $query = mysql_query ( "INSERT INTO `table` SET `table`.`users` = '{$_SESSION['user_name']}', `table`.`page` = 'page.php'" ) or die ( mysql_error() );
 
//Узнаем общее количество просмотров
$query = mysql_query ( "SELECT COUNT( `id` ) AS count FROM `table` WHERE `table`.`page` = 'page.php'" ) or die ( mysql_error() );
 
//Получаем результат
$resalt = mysql_fetch_assoc ( $query ) or die ( mysql_error() );
 
//Выводим 
echo 'Страницу смотрели: ', $resalt['count'], ' раз.';
?>
Вроде всё сказал. Пример думаю ясен.
1
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
04.10.2010, 22:49  [ТС]
После нажатия на один из пунктов меню на сайте, у меня выводится постраничная навигация, на одной странице 3 поста.
В каждом посте есть ссылка "Подробнее" и левее этой ссылки Количество просмотров: 0.
Скажите,что куда передать чтоб после нажатии на ссылке "подробнее" этот счётчик увеличился, только не на всех постах одновременно и а именно тот пост который посетили, после нажатии на ссылку "Подробнее"?

Добавлено через 38 секунд
сейчас посмотрю пост выше.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 23:05
Цитата Сообщение от Syltan Посмотреть сообщение
Скажите,что куда передать чтоб после нажатии на ссылке "подробнее" этот счётчик увеличился, только не на всех постах одновременно и а именно тот пост который посетили, после нажатии на ссылку "Подробнее"?
Для этого нужно как-то выделить пост, который хотите просмотреть подробнее. Для этого можно использовать метод GET. Вот так может выглядеть ссылка "Подробнее":
http://site.ua/articles.php?post=45
А структура БД может быть разной. Как вариант, можно хранить количество просмотров поста в той же таблице, что и сам пост, но в отдельном поле. К примеру, 45, из ссылки выше, может указывать на ID поста в таблице. Тогда, что бы увеличить только количество просмотров этого поста нужен следующий запрос:
SQL
1
UPDATE `table` SET `views` = $new_count WHERE `id` = $_GET['post'] LIMIT 1;
Должно работать

Добавлено через 3 минуты
Syltan, так Вам уже GalaX, писал подобное... Что не получается или не понимаете?
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 23:07
Syltan, ну как я написал не подходит(?),
задаешь напр. $prosm = 0;
после
$row = mysql_fetch_array($res);
пишешь ($res - это - $res = mysql_query($query_2):

$prosm = $row[5];
$prosm++;
mysql_query("UPDATE news SET prosm = $prosm WHERE id = $id");

$row[5] - у меня ячейка в БД, где хранится количество просмотров
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
04.10.2010, 23:11  [ТС]
В базе данных у меня 2 записи, первая запись такая:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?>        
<div class="zagolovok_kyrsa">Курс1</div>
<br />
<div align="justify" class="shrift">
Случилось то, чего <b>так долго ждали в Рунете,</b> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
Невероятный, потрясающий подарок всем, кто интересуется &nbsp <b>заработками в Сети!..</b>
</div>
<div>&nbsp;</div>
<div align="right"> <a class="podrob" href="/videolessons/1_1.php?id=1">Подробнее </a><span class="skobki">>></span></div>
<br />
2-ая такая:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$enlarge = mysql_query("UPDATE lessons SET obnovlenie = obnovlenie+1  WHERE id=".$id);
?>        
<div class="zagolovok_kyrsa">Курс1</div>
<br />
<div align="justify" class="shrift">
Случилось то, чего <b>так долго ждали в Рунете,</b> но чего никогда ранее еще не было!..Произошло по истине эпохальное событие!..
Невероятный, потрясающий подарок всем, кто интересуется &nbsp <b>заработками в Сети!..</b>
</div>
<div>&nbsp;</div>
<div align="right"> <a class="podrob" href="/videolessons/1_1.php?id=2">Подробнее </a><span class="skobki">>></span></div>
<br />
Вот код который выводит все посты с ссылками Подробнее.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<div id="center">
<?php 
include '../blocks/database.php';  /*Соединяемся с Базой Данных*/
?>
 
<div class="zagolovok">Список</div> <br />
        
<?php
//Число постов выводящих на странице
$num = 3;
@$page = $_GET['page'];
if(empty($page)){
$page = 1; 
}
 
 
$result = mysql_query("select COUNT(*) FROM lessons",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7  тогда 7*3-3=18  
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;  
$result = mysql_query("SELECT * FROM lessons LIMIT $start, $num",$connect);  
// В цикле переносим результаты запроса в массив $postrow  
while ($postrow[] = mysql_fetch_array($result,$connect)); 
 
/*--------------------------------------------------------------------------------------*/
 
 
/*--------------------------------------------------------------------------------------*/
$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/>';
}
 
 
//------------------------------------------------
// Стрелка назад  
if($page>1)
$nazad= '<a class="knopka_nazad1" href= ./1.php?page='.($page-1).'>Назад</a>';
else $nazad= '<span class="knopka_nazad2">Назад</span>';
       
//Стрелка вперед  
if($page<$chislo_str)
$vpered = '<a class="knopka_vpered1" href= ../videolessons/1.php?page='.($page + 1).'>Вперёд</a>';
else $vpered= '<span class="knopka_vpered2">Вперёд</span>';
 
// Вывод меню  
$expand_to = 4; // сколько страниц должно показываться слева и справа от текущей
 
// начало и конец "соседних" страниц
$a = $page - $expand_to; if ($a < 1) $a = 1; 
$b = $page + $expand_to; if ($b > $chislo_str) $b = $chislo_str;
 
if ($a > 1) // надо ли показывать отдельно ссылку на первую и "..."
{
    $navigation[] = "<a href=\"./1.php?page=1\">1</a>";
    if ($a > 2) $navigation[] = "...";
}
 
// генерируем ссылки на "соседние" страницы
for ($i = $a; $i <= $b; $i++)
    $navigation[] = ($page == $i) ? '<span class="tek_str">'.$i.'</span>' : "<a class='str_nav' href=\"./1.php?page=$i\">$i</a>";
 
if ($b < $chislo_str) // надо ли показывать отдельно "..." и ссылку на последнюю
{
    if ($b < $chislo_str - 1) $navigation[] = '...';
    $navigation[] = "<a href=\"./1.php?page=$chislo_str\">$chislo_str</a>";
}
 
// выводим готовую навигацию
echo $nazad.'&nbsp;&nbsp;'.implode(' ', $navigation).'&nbsp;&nbsp;'.$vpered;
?>
 
<!---------------------------------------------------------------------------->
</div> <!-- Закрываем контент-->
Покажите имено на этом коде, я не могу понять,что именно поменять в каком месте.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 23:11
romchiksoad, пока твой код не посмотрел, вопрос.
а не получится, если использовать сессии, при кажджом заходе на сайт число просмотров будут отсчитываться с нуля?? ведь сессии пропадают при закрытии браузера
0
191 / 191 / 31
Регистрация: 04.10.2010
Сообщений: 505
04.10.2010, 23:24
Может вопрос нелепый... А будет разница зарегистрированный пользователь смотрит или не зарегистрированный?
Просто с зарегистрированными легче работать, они будут в базе данных. А вот вторых фиг выцепить)
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
04.10.2010, 23:33
hellpass, какая разница для счетчика просмотров регистрированный смотрит статью или нерегистрированный. он только осчитывает сколько раз нажимали по ссылке.
2 варианта возможны:
1. считать каждый щелчок, даже если один и тот же пользователь нажимает ссылку.
2. считать по одному щелчку от каждого пользователя (т.е если один пользователь посетит страницу еще раз счетчик не сработает)
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
04.10.2010, 23:42
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
а не получится, если использовать сессии, при кажджом заходе на сайт число просмотров будут отсчитываться с нуля?? ведь сессии пропадают при закрытии браузера
Сессии предназначены для пользователя. Вы не сможете хранить данные о просмотре страницы пользователем А в сессии у пользователя Б. Таким образом, если не сохранять эти просмотры в БД, то максимальное количество просмотров не подымется выше одного ( при том, что увеличиваем счетчик просмотра только при первом заходе на страницу ). Читайте, пожалуйста, внимательнее то, что я писал выше.
В данной ситуации, сессии можно использовать для того, что бы снизить нагрузку на сервер, путем уменьшения количества запросов к MySQL. Для этого нужно записывать данные о просмотренных страницах не только в БД, но и в сессии, что бы далее можно было их брать в следующий раз не из БД, а из супер глобального массива $_SESSION. Вот пример:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
error_reporting ( E_ALL );
 
session_start();
//Какой-то код
 
//Есть ли текущая страница в массиве SESSION
//Если есть, то не увеличиваем счетчик
if ( !in_array ( 'page', $_SESSION['views'] ) ) {
 
    //Соединяемся с MySQL-сервером
    mysql_connect( 'host', 'login', 'password' );
    mysql_select_db ( 'db' );
    mysql_set_charset( 'utf-8' );//Кодировка
 
    //Записали в таблицу, что бы после уничтожения сессии данные остались
    $query = mysql_query ( "INSERT INTO `table` SET `table`.`users` = '{$_SESSION['user_name']}', `table`.`page` = 'page.php'" ) or die ( mysql_error() );
 
    //Сохраняем в сессии, что бы не трогать лишний раз БД
    $_SESSION['views'][] = 'page';
 
}
 
//Узнаем общее количество просмотров
$query = mysql_query ( "SELECT COUNT( `id` ) AS count FROM `table` WHERE `table`.`page` = 'page.php'" ) or die ( mysql_error() );
 
//Получаем результат
$resalt = mysql_fetch_assoc ( $query ) or die ( mysql_error() );
 
//Выводим 
echo 'Страницу смотрели: ', $resalt['count'], ' раз.';
?>
Вот как-то так.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2010, 23:42
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru