Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> счетчик посещений на PHP и MySql 
:(
    Опции темы
americanets
Дата 15.10.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



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

Код

CREATE TABLE `count` (`all` text, `segodnya` text, `segodnyarazn` text);


чтоб можно было вывести для просмотра


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Gold Dragon
Дата 15.10.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а может структуру поменять, ну типа 
Код

CREATE TABLE `stat` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(15) NOT NULL default '',
  `data` date NOT NULL default '0000-00-00',
  `sum` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
);

а когда нужно, то просто считать нужное соответствующими запросами..

вот как я это делаю
Код

function f_statistika(){
    $ip = f_get_ip(); // функция для получения IP
    $data = date("Y-m-d");
    $z = "SELECT * FROM `stat` WHERE `ip`='".$ip."' AND `data`='".$data."'";
    $r = mysql_query($z);
    if(mysql_num_rows($r)>0){
        $f = mysql_fetch_array($r);
        $id = $f['id'];
        $sum = $f['sum']+1;
        $z = "UPDATE `stat` SET `sum`='".$sum."' WHERE `id`=".$id;
    }else{
        $z = "INSERT INTO `stat` (
         `id`,
         `ip`,
         `data`,
         `sum`
         ) VALUES (
          '',
          '".$ip."',
          '".$data."',
          '1'
          )";
    }
    $r = mysql_query($z);
    // всего просмотров
    $z = "SELECT SUM( `sum` ) AS `sum` FROM `stat`";
    $r = mysql_query($z);
    if(mysql_num_rows($r)>0){
        $f = mysql_fetch_array($r);
        $stat['all_hits'] = $f['sum'];
    }

    // всего уникальных просмотров
    $z = "SELECT DISTINCT `ip` FROM `stat`";
    $r = mysql_query($z);
    $stat['all_host'] = mysql_num_rows($r);

    // просмотров сегодня
    $data = date("Y-m-d");
    $z = "SELECT SUM( `sum` ) AS `sum` FROM `stat` WHERE `data`='".$data."'";
    $r = mysql_query($z);
    if(mysql_num_rows($r)>0){
        $f = mysql_fetch_array($r);
        $stat['hits'] = $f['sum'];
    }
    // уникальных сегодня
    $z = "SELECT DISTINCT `ip` FROM `stat` WHERE `data`='".$data."'";
    $r = mysql_query($z);
    $stat['host'] = mysql_num_rows($r);

    return <<<EOF
        <table width="60%" border="0" cellpadding="1" cellspacing="1" align="center" class="btr">
            <tr class="txt5">
                <td align="center">рейтинг</td>
                <td align="right">{$stat['all_hits']}</td>
            </tr>
            <tr class="btr">
                <td align="center"><img src="images/stat.gif" alt="" border="0"></td>
                <td align="right" class="txt4">
                    {$stat['hits']}<br>
                    {$stat['host']}
                </td>
            </tr>
        </table>
EOF;
}

фунуцию вызываю в самом начале загрузки страницы. Возвращается табличка-счетчик. Ну ты можешь делать как тебе удобно.

в итоге получаются отчёты "Всего", "Всего сегодня", "Уникальных сегодня". 

ЗЫ
если пригодится, то пользуйся смело  smile 



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
americanets
Дата 15.10.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



пасибо, буду пробовать


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
americanets
Дата 16.10.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



а как ее вызвать ? smile


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Gold Dragon
Дата 16.10.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



ставишь в самое начало страницы 

Код

<?php
$stat = f_statistika();

// ...................

// а где тебе нужно вывести счетчит, ставишь

echo $stat;

// и всё :)
?>


Это сообщение отредактировал(а) Gold Dragon - 16.10.2006, 14:50


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
americanets
Дата 16.10.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



ну с этим разобрался, а вот пишет 
Fatal error: Call to undefined function: f_get_ip() in stat.php on line 3
я ее коментирую чтоб убрать выдает просто 0

Добавлено @ 14:58 
просто кое где ошибся, но с    
Код

$ip = f_get_ip();
  все равно ошибка
а так считает, но ip не учитывает


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Gold Dragon
Дата 16.10.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(americanets @  16.10.2006,  14:54 Найти цитируемый пост)
Fatal error: Call to undefined function: f_get_ip() in stat.php on line 3
Да там просто вызывается функция для определиения IP. Я её не стал писать smile

вот лови
Код

function f_get_ip(){
//*************************************************
// Получение IP:
// выход - xx.xx.xx.xx
//*************************************************
    if ($ip = getenv("HTTP_CLIENT_IP")){
       return $ip;
    }
    if ($ip = getenv("HTTP_X_FORWARDED_FOR")){
       if ($ip == '' || $ip == "unknown"){
          $ip = getenv("REMOTE_ADDR");
       }
       return $ip;
    }
    if ( $ip = getenv("REMOTE_ADDR") ){
    return $ip;
    }
}

вставь это где-нибудь в конце


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
americanets
Дата 16.10.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



ОК, спасибо  smile 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
americanets
Дата 17.10.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



а что еще можно не сложно прикрутить, статистику по OS браузеру и тд ?  


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Gold Dragon
Дата 17.10.2006, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



да всё что угодно... сначала определись в желаниях smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
americanets
Дата 18.10.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



ну OS не так уж важно более интереснее былобы посмотреть браузеры 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
americanets
Дата 29.10.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



А можно вывести статистику в графическом виде? Например 88х18 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Blaga
Дата 1.11.2006, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ЛамМер++
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 15.11.2005
Где: г. Иркутск

Репутация: 2
Всего: 4



americanets, для просмотра браузеров можно использовать ЯваСкрипт. Можно конечно и в графическом виде выводить. Почитай о создании изображений средствами PHP. smile


--------------------

http://displayart.ru - Обои.
http://a2themes.ru - Сайт о движках DLE, phpBB3, WordPress.
PM MAIL ICQ   Вверх
americanets
Дата 1.11.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

Репутация: 5
Всего: 12



разбираюсь по тихоньку, спасибо 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2625 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.