Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: базы данных

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 85, средняя оценка - 4.87
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
#1

Как сделать счётчик переходов по ссылке? php + MySQL - PHP БД

11.11.2010, 21:18. Просмотров 11554. Ответов 31
Метки нет (Все метки)

Привет народ!
У меня в общем из базы берёт ссылки следующим образом


PHP
1
Echo "<a target='_blank' href='http://".$info['url'] ."'>". $info['url'] . '</a><p>Переходы: <p>';
как сделать так, чтобы при нажатии на ссылку работал счётчик переходов и заносился в базе mysql в стобце "perehody"? ну и потом выводило общее количество "переходы: (число) )))
Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2010, 21:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как сделать счётчик переходов по ссылке? php + MySQL (PHP БД):

Как сделать правильно ? mysql и php - PHP БД
Кто может исправьте ошибки - что то не хвататет ) задолбался говорит ошибка в 14 строке да и не только )) &lt;? // Подключаемся к серверу,...

Передача количества переходов по ссылке в БД - PHP БД
Привет друзья. 2 дня весь интернет рою и ни как не найду ответа на вопрос. Точнее ответов много, а ни один не подходит. есть такой код ...

Счетчик переходов по ссылке пользователя - PHP БД
Вопрос такой: Есть два пользователя, у которых есть свои ссылки (например у первого http://site.ru/partner.php?id=1; у второго...

Как сделать красиво и правильно? ООП + PHP + MySQL - PHP БД
В одной из функций класса производится подключение к БД. Возможно ли реализовать что-то подобное: define('DBSERVER',...

Как сделать поиск с помощью php в таблице MySQL - PHP БД
Доброе время суток. Подскажите плиз как сделать поиск с помощью php в таблице mySQL вот что я пробовал сделать: &lt;?php ...

Не работает статистика переходов по внешней ссылке - PHP БД
Всем здравствуйте! Помогите, пожалуйста, решить проблему: Есть сайт и на нем не правильно ведется статистика переходов по внешней...

31
ostgals
882 / 677 / 15
Регистрация: 23.01.2009
Сообщений: 1,581
27.11.2010, 23:17 #16
Это таблица пользователей. Для регистрации кликов нужна еще одна таблица (я уже писал про это) - вот ее структура мне и нужна.

По идее, там должны быть поля:
1. идентификатор ссылки
2. адрес кликера
3. время клика
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
27.11.2010, 23:56  [ТС] #17
Цитата Сообщение от ostgals Посмотреть сообщение
Это таблица пользователей. Для регистрации кликов нужна еще одна таблица (я уже писал про это) - вот ее структура мне и нужна.

По идее, там должны быть поля:
1. идентификатор ссылки
2. адрес кликера
3. время клика
а так вон оно что ... а я думал то строки в таблице создать, ну вот три последних строки будут с такими же названиями таблиц!
Точнее таблица "clicks" с этими тремя строками
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
28.11.2010, 13:35  [ТС] #18
вот скрин таблицы:
0
Миниатюры
Как сделать счётчик переходов по ссылке? php + MySQL  
ostgals
882 / 677 / 15
Регистрация: 23.01.2009
Сообщений: 1,581
28.11.2010, 16:24 #19
А что, типы данных вы еще не изучили?

ip - varchar(10) - большинство IP-адресов просто не поместятся в такой тип. сделайте varchar(15)
link_id - вопрос в том, что за данные это будут. если по аналогии с уже имеющимся кодом, то это значение поля id из таблицы users? если так, то тип будет int. если нет, тогда объясните откуда должно браться конечное значение ссылки.
date_click - должен быть типа datetime или аналогичный
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
28.11.2010, 16:47  [ТС] #20
нет типы данных ещё не до конца изучил! link_id соответсвует именно ссылке из users ))) чтобы при нажатии на одну и ту же ссылку не считалисб клики по данной ссылки )))
0
ostgals
882 / 677 / 15
Регистрация: 23.01.2009
Сообщений: 1,581
28.11.2010, 17:05 #21
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
<?php // redirect.php
 
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("users") or die(mysql_error()) ; // соединение с БД и прочая подготовуха
    // ...
 
    if (empty($_GET['id'])) {
        header('HTTP/1.1 404 Not found');
        die();
    } else {
        
        // чистка устаревших кликов
        mysql_query("delete from clicks where date_click < date_add(now() interval -1 day)");
        
        // получаем id ссылки и саму ссылку
        $id = mysql_real_escape_string($_GET['id']);
        $result = mysql_query("select url from users where id='$id'");
        if (!mysql_num_rows($result)) {
            header('HTTP/1.1 404 Not found');
            die();
        }
        $url = mysql_result($result, 0);
        
        // получаем IP кликера
        $ip = $_SERVER['REMOTE_ADDR'];
        // проверяем надо ли засчитывать клик
        $result = mysql_query("select * from clicks where ip='$ip' and link_id='$id'");
        if (mysql_num_rows($result) == 0) { // надо засчитывать, поэтому...
            // регистрируем клик
            mysql_query("insert into clicks (ip, link_id, date_click) values ('$ip', '$id', now())");
            // увеличиваем счетчик кликов
            mysql_query("update users set clicks=clicks+1 where id='$id'");
        }
        
        // перенаправление
        header('Location: http://'.$url);
 
    }
Сразу говорю, что код не проверял. Если я где-то ошибся в названиях полей, исправляйте самостоятельно. Если еще что, пишите - поможем.
1
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
28.11.2010, 17:30  [ТС] #22
Спасибо! пртестурую, результат скажу ))
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
29.11.2010, 21:23  [ТС] #23
Проблемка - не удаляет старые значения с датой, и не считает клик на следующий день!
0
ostgals
882 / 677 / 15
Регистрация: 23.01.2009
Сообщений: 1,581
29.11.2010, 22:31 #24
Цитата Сообщение от philcrosoft Посмотреть сообщение
Проблемка - не удаляет старые значения с датой
Запятая потерялась:
PHP
1
2
// чистка устаревших кликов
        mysql_query("delete from clicks where date_click < date_add(now(), interval -1 day)");
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
29.11.2010, 22:50  [ТС] #25
круто!!! работает!!! ))) пасиб огромное! ну и последние мне для своего знания в области php и базы данных хотелось бы узнать как складывать значения ))) в общем мне нужно посчитать все значения в столбце переходов и показать это на странице! спасибо!
0
ostgals
882 / 677 / 15
Регистрация: 23.01.2009
Сообщений: 1,581
29.11.2010, 23:12 #26
Общее число всех зарегистрированных переходов?
PHP
1
2
3
4
$result = mysql_query("select sum(clicks) from users");
$clicks_total = mysql_result($result, 0);
 
echo $clicks_total;
1
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
29.11.2010, 23:24  [ТС] #27
ostgals, скажите а если разрабатывать статистику скажем за сегодняшний день, неделю, за месяц, за год, по тем же кликам следует сделать ещё отделную таблицу в базе! или как-то прописать просто кодом?
0
ostgals
882 / 677 / 15
Регистрация: 23.01.2009
Сообщений: 1,581
30.11.2010, 10:29 #28
Цитата Сообщение от philcrosoft Посмотреть сообщение
а если разрабатывать статистику скажем за сегодняшний день, неделю, за месяц, за год, по тем же кликам
Лучше всего сделать еще одну таблицу, в которую в конце каждого дня сбрасывалась бы информация о кликах за день. Статистику за неделю, месяц, год можно легко высчитать на основе статистики по дням. Но надо продумать систему отсчета времени.
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
14.07.2011, 19:19  [ТС] #29
поднимаю эту тему ... так как локально когда я сделал всё работало и лишнего не подсчитывало! Однако когдая я щагруил всё в инет подсёт переходов считает неправильно, т.е. с одного ip можно кликать сколько угодно и столько раз подсчитывает эти переходы, а локально только с одного ip подсчитывало один раз в сутки!
при загрузке в инет в коде менял только шапку, логин, пароль и название базы, отсальной код не трогал! может я что-то упустил? прошу помочь!!! код тот же что помог сделать ostgals

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
<?php // redirect.php
 
    mysql_connect("localhost", "root", "") or die(mysql_error()) ;
    mysql_select_db("users") or die(mysql_error()) ; // ñîåäèГ*ГҐГ*ГЁГҐ Г± ГЃГ„ ГЁ ïðî÷Г*Гї ïîäãîòîâóõГ*
    // ...
 
    if (empty($_GET['id'])) {
        header('HTTP/1.1 404 Not found');
        die();
    } else {
 
        // Г·ГЁГ±ГІГЄГ* ГіГ±ГІГ*ðåâøèõ êëèêîâ
        mysql_query("delete from clicks where date_click < date_add(now(), interval -1 day)");
 
        // ïîëó÷Г*ГҐГ¬ id ññûëêè ГЁ Г±Г*ìó ññûëêó
        $id = mysql_real_escape_string($_GET['id']);
        $result = mysql_query("select url from users where id='$id'");
        if (!mysql_num_rows($result)) {
            header('HTTP/1.1 404 Not found');
            die();
        }
        $url = mysql_result($result, 0);
 
        // ïîëó÷Г*ГҐГ¬ IP êëèêåðГ*
        $ip = $_SERVER['REMOTE_ADDR'];
        // ïðîâåðÿåì Г*Г*äî ëè Г§Г*ñ÷èòûâГ*ГІГј êëèê
        $result = mysql_query("select * from clicks where ip='$ip' and link_id='$id'");
        if (mysql_num_rows($result) == 0) { // Г*Г*äî Г§Г*ñ÷èòûâГ*ГІГј, ïîýòîìó...
            // ðåãèñòðèðóåì êëèê
            mysql_query("insert into clicks (ip, link_id, date_click) values ('$ip', '$id', now())");
            // óâåëè÷èâГ*ГҐГ¬ Г±Г·ГҐГІГ·ГЁГЄ êëèêîâ
            mysql_query("update users set clicks=clicks+1 where id='$id'");
        }
 
        // ïåðåГ*Г*ГЇГ°Г*âëåГ*ГЁГҐ
        header('Location: http://'.$url);
 
    }
0
philcrosoft
3 / 3 / 0
Регистрация: 19.09.2010
Сообщений: 253
17.07.2011, 15:28  [ТС] #30
ну так в чём может быть загвостка в коде?
0
17.07.2011, 15:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2011, 15:28
Привет! Вот еще темы с ответами:

Счётчик кликов по ссылке, MVC - PHP БД
Доброго времени суток. Имеется база данных с таблицей в которой хранятся статьи. её структура: Поле Тип Null По умолчанию...

Как сделать, чтобы при нажатии по нику или логину пользователя, попасть на его страницу php mysql - PHP БД
Как на странице пользователи сайта организовать такую вещь: Это уже сделано -&gt; Выводим список зарегистрированных пользователей: Это еще...

В PHP сделать запросы к таблице в БД mysql - PHP БД
База данных - Автозаправочные станции! название полей в таблице: название АЗС, объем бензина(л), город В PHP сделать запросы к таблице...

Как сделать чтобы файл скачивался по ссылке, а не открывался браузером? - PHP
Есть папка с вордовскими документами и картинками, как сделать чтобы файл скачивался по ссылке, а не открывался браузером?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru