Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 85, средняя оценка - 4.87
philcrosoft
3 / 3 / 1
Регистрация: 19.09.2010
Сообщений: 253
#1

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

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

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


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

Как сделать правильно ? mysql и php
Кто может исправьте ошибки - что то не хвататет ) задолбался говорит ошибка в...

Счетчик переходов по ссылке пользователя
Вопрос такой: Есть два пользователя, у которых есть свои ссылки (например у...

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

Как сделать поиск с помощью php в таблице MySQL
Доброе время суток. Подскажите плиз как сделать поиск с помощью php в таблице...

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

31
ostgals
882 / 677 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
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 / 1
Регистрация: 19.09.2010
Сообщений: 253
28.11.2010, 17:30  [ТС] #22
Спасибо! пртестурую, результат скажу ))
0
philcrosoft
3 / 3 / 1
Регистрация: 19.09.2010
Сообщений: 253
29.11.2010, 21:23  [ТС] #23
Проблемка - не удаляет старые значения с датой, и не считает клик на следующий день!
0
ostgals
882 / 677 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
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 / 1
Регистрация: 19.09.2010
Сообщений: 253
29.11.2010, 22:50  [ТС] #25
круто!!! работает!!! ))) пасиб огромное! ну и последние мне для своего знания в области php и базы данных хотелось бы узнать как складывать значения ))) в общем мне нужно посчитать все значения в столбце переходов и показать это на странице! спасибо!
0
ostgals
882 / 677 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
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 / 1
Регистрация: 19.09.2010
Сообщений: 253
29.11.2010, 23:24  [ТС] #27
ostgals, скажите а если разрабатывать статистику скажем за сегодняшний день, неделю, за месяц, за год, по тем же кликам следует сделать ещё отделную таблицу в базе! или как-то прописать просто кодом?
0
ostgals
882 / 677 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
30.11.2010, 10:29 #28
Цитата Сообщение от philcrosoft Посмотреть сообщение
а если разрабатывать статистику скажем за сегодняшний день, неделю, за месяц, за год, по тем же кликам
Лучше всего сделать еще одну таблицу, в которую в конце каждого дня сбрасывалась бы информация о кликах за день. Статистику за неделю, месяц, год можно легко высчитать на основе статистики по дням. Но надо продумать систему отсчета времени.
0
philcrosoft
3 / 3 / 1
Регистрация: 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 / 1
Регистрация: 19.09.2010
Сообщений: 253
17.07.2011, 15:28  [ТС] #30
ну так в чём может быть загвостка в коде?
0
ostgals
882 / 677 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
21.07.2011, 10:16 #31
Загвоздок не наблюдается. Может проблема и не в этом фрагменте?

Для отладки можно временно:
- закомментировать последнее перенаправление: // header('Location: ...
- в начало скрипта добавить error_reporting(E_ALL);

..и посмотреть, не будет ли выдаваться какая-то ошибка.
0
philcrosoft
3 / 3 / 1
Регистрация: 19.09.2010
Сообщений: 253
10.08.2011, 09:04  [ТС] #32
ошибок нет ... локально всё работает ... по одному id только насчитывает 1 переход ... а в инете не работает ... заносит в таблицу один и тот же ip и насчитывает переходы ((( ... не понимаю в чём может быть проблема (((
0
10.08.2011, 09:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2011, 09:04
Привет! Вот еще темы с решениями:

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

Счётчик кликов по ссылке, MVC
Доброго времени суток. Имеется база данных с таблицей в которой хранятся...

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

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


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

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

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