Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/104: Рейтинг темы: голосов - 104, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166

Счетчик кликов

15.08.2014, 23:57. Показов 19932. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP изучаю со вчерашнего дня. Написал счетчик кликов. В ссылке, клике по которой надо посчитать, пишу вот так
HTML5
1
<a href="http://site.ru/click.php?url=www.lalala.ru">Ссылка</a>
Переменная url передается в php файл, и там обрабатывается.
А как теперь сделать рядом с этой ссылкой вывод кликов?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2014, 23:57
Ответы с готовыми решениями:

Счетчик кликов
Добрый день. На сайте стоит реклама от link.ru. Нужно сделать так, чтобы после 3 кликов на РАЗНЫЕ блоки рекламы выполнялся некоторый скрипт...

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

Счетчик кликов по кнопке
&lt;button class=&quot;but&quot;&gt;+&lt;/button&gt; &lt;span id=&quot;span&quot;&gt;&lt;/span&gt; &lt;script&gt; window.onload = function () { span =...

13
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
16.08.2014, 00:17
Куда сохраняется число кликов?
0
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166
16.08.2014, 00:26  [ТС]
Voka, в базу MySQL
0
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
16.08.2014, 00:33
Ну тогда так-же и вытаскивайте =)
Например у тебя таблица:
idsiteclick
PHP
1
2
3
4
5
6
7
echo '<pre>';
$result=mysql_query('select * from CLICK_TABLE'); // присваивает переменной данные из БД по запросу(грубо говоря)
while($click=mysql_fetch_row($result)) // помещает все ячейки текущей строки из БД в массив $click и сдвигает индекс на 1
{
    print_r($click); // вывод массива текущей строки
} // цикл будет продолжаться пока не выведет последнюю строку
echo '</pre>';
0
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166
16.08.2014, 00:41  [ТС]
Voka, я так понимаю этот способ выведет мне всё из этой таблицы...или я че то не так понял?
мне нужно что бы было вот так
Ссылка | количество кликов по ней
все ссылки находятся на разных страницах сайта. как мне вывести клики именно для той ссылки для которой надо?
0
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
16.08.2014, 00:45
Да, выведется всё.
Цитата Сообщение от _VALERON_ Посмотреть сообщение
все ссылки находятся на разных страницах сайта. как мне вывести клики именно для той ссылки для которой надо?
PHP
1
2
3
4
$site='www.site.ru';
$result=mysql_query("select CLICK from CLICK_TABLE where SITE='".$site."'"); // большие буквы только для наглядности
$click=mysql_fetch_row($result); // т.к. знаем, что будет один результат(или одна строка из базы) цикл не нужен
echo $click[0]; // т.к. у нас получилась всего одна строка с одной ячейкой.
p.s. select ID,CLICK from CLICK_TABLE where SITE='www.site.ru' - читается так: вывести колонки ID,CLICK из таблицы CLICK_TABLE где ячейка SITE совпадает с текстом 'www.site.ru'
0
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166
16.08.2014, 00:58  [ТС]
Voka, так то да но если у меня 100500 ссылок, мне нужно будет и 100500 запросов с разными WHERE написать...это как то трудно как можно по другому? может можно как то скрипт прикрутить, который будет передавать в php файл url нужной ссылки, потом php файл обработает это и вернет количество кликов?
0
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
16.08.2014, 01:06
Ну я привел пример с переменной, просто переменную меняешь.
Ну или можно сделать немного костыльно запрос:
PHP
1
2
3
4
5
6
7
8
9
10
$site1='www.site1.ru';
$site2='www.site2.ru';
$site3='www.site3.ru';
$result=mysql_query("select * from CLICK_TABLE where SITE='".$site1."' or SITE='".$site2."' or SITE='".$site3."'");
while($click=mysql_fetch_row($result))
{
    $all_click[$click[0]]=$click[1];
}
// В итоге массив в индексах имена сайтов, в значении кол-во кликов.
echo $all_click['site1.ru']; // что бы вывести для сайта site1.ru кол-во кликов
Можно и без WHERE. Каждый раз будет вся таблица из БД в массив пихаться
0
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166
16.08.2014, 01:23  [ТС]
Voka, опять же, как мне узнать что именно для site1.ru нужно вытащить количество кликов? Наверное все таки js нужен?
0
 Аватар для Voka
207 / 199 / 110
Регистрация: 27.12.2010
Сообщений: 819
Записей в блоге: 1
16.08.2014, 01:27
JS - клиентский язык, не серверный(в основном)
способы решения:
1. Перелопатить весь сайт и вписать около ссылок:
PHP
1
<?=$all_click['site1.ru']?> // сокращенный вариант этого <? echo $all_click['site1.ru']; ?>
2. В конце страницы вывести массив в <script></script> что бы он стал JS массивом, потом уже с ним манипулировать.
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
16.08.2014, 01:52
Извините не выдержал:

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
// index.php
<?php 
include "bd-load.php";
    $zzz = mysql_query("SELECT * FROM CLICK_TABLE");
    $all_spisok = array();
    while($record = mysql_fetch_array($zzz))
        {
            $site = $record['site'];
            $click = $record['click'];
            $all_spisok["$site"] = $click;
        }
?>
<html>
<head>
    <title>Hello </title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
    <ul>
        <li><span class="ssulka">mail.ru</span><span class="kol_klikov"><?php echo $all_spisok['mail.ru'];?></span>
        <li><span class="ssulka">ukr.net</span><span class="kol_klikov"><?php echo $all_spisok['ukr.net'];?></span>
        <li><span class="ssulka">google.com</span><span class="kol_klikov"><?php echo $all_spisok['google.com'];?></span>
 
    </ul>
    <script>
    
        $('.ssulka').each(function(){
            $(this).click(function(){
             $.ajax({
             var t = $(this).html();
                                                                                  url: "click.php",
                                                                                  type: "GET",
                                                                                  data: {"url": t},
                                                                                  cache: false,
                                                                                  success: function(response){
                                                                                  if(response == 0)
                                                                                        {
                                                                                        }
                                                                                    else
                                                                                        {                                                                       
                                                                                            $(this).next().html(response);  
                                                                                            
                                                                                        }
                                                                                                            }
                                                                                        });
            }); 
        });
    </script>
</body>
</html>

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
<?php
// click.php file
 
include "bd-load.php";
if($_GET['url'])
{
    $sdelali_click_po_sity = urldecode($_GET['url']);
    $zzz = mysql_query("SELECT * FROM CLICK_TABLE WHERE site = '$sdelali_click_po_sity' ");
    $record = mysql_fetch_array($zzz);
    
    if($record) // запись есть
    {
        mysql_query("UPDATE CLICK_TABLE SET click = click + 1 WHERE site = '$sdelali_click_po_sity' "); // добавляем клик
        $show_click = $record['click'] + 1;
        echo $show_click;   // что было + 1. Выводит новое значение
    }
    else // нету такого сайта
    {
        mysql_query('INSERT INTO CLICK_TABLE VALUES (NULL, "'.$sdelali_click_po_sity.'", 1)'); // добавляем запись с кликом 1 (этим что сделали)
    }
    
    
}
?>
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
<?php
// bd-load.php file
$dblocation = "localhost";
$dbuser = "moy_nick";
$dbpasswd = "password123";
$dbname="my_SQL";
 
//Подключение к базе данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) // Если дескриптор равен 0 соединение не установлено
 {
 echo("<p>В настоящий момент сервер базы данных не
         доступен, поэтому корректное отображение страницы
         невозможно........</p>");
 exit();
 }
 
if (!@mysql_select_db($dbname, $dbcnx))
 {
 echo( "<p>В настоящий момент база данных не доступна,
          поэтому корректное отображение страницы невозможно.</p>" );
 exit();
 }
 
mysql_query ("set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
 
?>
0
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166
16.08.2014, 15:10  [ТС]
Voka, аааааааа либо я не так объясняю, либо вы меня не понимаете...
У меня есть в html документе ссылка
HTML5
1
<a href="http://test/click.php?url=http://site.ru">Ссылка</a>
в пхп попадает переменная url, которая заносится в БД MySQL. Как мне потом достать количество кликов по ссылке, если я не знаю какая конкретно ссылка мне нужно(их очень очень многоно в БД, но на одной странице сайта всего лишь одна ссылка клики по которой нужно посчитать). Вот мне нужен наверное какой-то js который будет видеть(например через class) какую именно ссылку нужно передать в php, который в свою очередь обработает эту ссылку, и на выходе даст количество кликов по ней.

в js я не силен, точнее я его вообще не знаю, но мне нужно что то вроде такого
Записать ссылку вида
HTML5
1
<a [B]CLASS="CLICK"[/B] href="http://test/click.php?url=http://site.ru">Ссылка</a>
а в js должно быть что-то вроде
если a.class=clack, то какая нибудь переменная= a.href
передать какая нибудь переменная в php файл

Добавлено через 13 минут
rikimaru2013, а можете объяснить что ваш скрип делает?
вот этот
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script>
    
        $('.ssulka').each(function(){
            $(this).click(function(){
             $.ajax({
             var t = $(this).html();
                                                                                  url: "click.php",
                                                                                  type: "GET",
                                                                                  data: {"url": t},
                                                                                  cache: false,
                                                                                  success: function(response){
                                                                                  if(response == 0)
                                                                                        {
                                                                                        }
                                                                                    else
                                                                                        {                                                                       
                                                                                            $(this).next().html(response);  
                                                                                            
                                                                                        }
                                                                                                            }
                                                                                        });
            }); 
        });
    </script>
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
17.08.2014, 06:14
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script>
    
        $('.ssulka').each(function(){ // для каждого элемента с классом .ssulka поставить "слушателя события"
            $(this).click(function(){ // слушатель "клик". При клике сделать функцию:
             $.ajax({                     // Ajax - гугл в помощь тут
             var t = $(this).html();  // переменная равна содержимому того, на что клацнули. клацают на сайт у нас типа site.com
                 url: "click.php",    // кто обрабатывает
                 type: "GET",         // метод GET
                 data: {"url": t},      // что передаём $_GET['url'] = переменной t выше
                 cache: false,    // не кешируем
                 success: function(response){   // ответ от clicl.php это переменная response
                  if(response == 0) // если она пустая
                  {
                    $(this).next().html("0");  
                   }
                  else // она там есть хоть один символ
                  {                                                                       
                  $(this).next().html(response);  // там где клацнули, следующий элемент его содержимое будет строка ответа. В clicl.php мы ответ выводим через echo                                                                                            
                   }
                                                                                                            }
                                                                                        });
            }); 
        });
    </script>
0
1 / 1 / 0
Регистрация: 20.03.2014
Сообщений: 166
17.08.2014, 15:00  [ТС]
rikimaru2013, спасибо за разъяснение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2014, 15:00
Помогаю со студенческими работами здесь

Счетчик кликов на кнопку
Здравствуйте ув. форумчане! Не знаю как правильно сформулировать, но нужно следующее: есть сайт с кнопками-ссылками на группы в соц. сетях....

Счетчик кликов на PHP
Здравствуйте. Нужна помощь с доработкой кода счетчика кликов. В общем можно сказать, что это обычный сумматор с записью значения +1 в...

Счетчик кликов по кнопке (с сохранением количества)
Нужен счетчик кликов по кнопке php с сохранение количества. Есть вот такой код подскажите что надо добавить или если есть скиньте ссылку...

Переделать (или доделать) счетчик кликов
народ, есть код счетчика: ПХП &lt;?PHP @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE ); @ini_set ( 'error_reporting', E_ALL ^...

Подсчет кликов по ссылкам
Всем привет! Подскажите, как можно организовать подсчет кликов по ссылкам на сайте? Количество кликов должно записывать в файл с...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru