jak stworzyc licznik klikniec ze statystyka dzienną, PHP Skrypty


[MySQL][PHP] Jak stworzyć licznik kliknięć ze statystyką dzienną?

0x01 graphic

Chcesz wykonać licznik kliknięć na link i wzbogacić go o statystyką dzienną w raporcie.

0x01 graphic

Masz na stronie wiele linków, prawda? Warto wiedzieć, który klikany jest najczęściej. Jeżeli serwer ma system statystyk, własne linki możesz w nim jeszcze wychwycić i zliczyć, ale przekierowań na obce strony już nie wyłapiesz.

Prosty licznik kliknięć pozwoli Ci uzyskać dokładne statystyki dotyczące popularności wybranych odnośników. Zacznijmy od stworzenia tabeli, która będzie przechowywać informacje o odnośnikach:

CREATE TABLE linki (

id INT NOT NULL PRIMARY KEY,

link CHAR(200) NOT NULL

);

INSERT INTO linki VALUES (1,"http://web.reporter.pl/");

INSERT INTO linki VALUES (2,"http://web.reporter.pl/porady/");

INSERT INTO linki VALUES (3,"http://ogloszenia.reporter.pl/");

Każdy link ma unikalny numer, aby można go było rozróżnić. Przy okazji w tabeli umieściłem kilka przykładowych odnośników.

Teraz czas na tabelę z licznikami kliknięć:

CREATE TABLE kliki (

id INT NOT NULL,

data DATE NOT NULL,

licznik INT NOT NULL DEFAULT "0"

);

Tu potrzebny jest identyfikator linku (brany będzie z poprzedniej tabeli), data kliknięcia (rok, miesiąc, dzień) dla raportowania ilości kliknięć w ciągu określonych dni i licznik kliknięć dla danego dnia.

Możemy już napisać skrypt PHP, który zarejestruje kliknięcie i przekieruje nas na wybraną stronę WWW. Aby skorzystać ze skryptu wystarczy użyć konstrukcji w postaci go.php?id=2, gdzie id to numer odnośnika. Oto kod pliku go.php:

<?

$id=$_GET["id"];

if ($id) {

$baza = mysql_connect("localhost", "user", "password");

mysql_select_db("baza1",$baza);

$wynik=mysql_query("SELECT link FROM linki WHERE id='$id'");

if (mysql_num_rows($wynik)>0) {

$link = mysql_fetch_row($wynik);

$wynik=mysql_query("SELECT * FROM kliki

WHERE id='$id' and data=NOW()");

if (mysql_num_rows($wynik)==0) {

mysql_query("INSERT INTO kliki (id, licznik, data)

VALUES($id, licznik+1, NOW())");

} else {

mysql_query("UPDATE kliki SET licznik=licznik+1

WHERE id=$id and data=NOW()");

}

}

mysql_close($baza);

}

if ($link[0]<>"") {

header("location: $link[0]");

} else {

header("location: index.php");

}

?>

Po odczytaniu przekazanego parametru $id z numerem odnośnika, łączę się z bazą i sprawdzam czy identyfikator o takim numerze istnieje w tabeli linki. Jeżeli tak, czyli gdy istnieje choć jeden taki rekord (mysql_num_rows($wynik)>0), mogę wykonać zliczanie kliknięć w link.

Pobieram adres (odnośnik) i sprawdzam czy już istnieje wpis z aktualną datą i numerem odnośnika. Jeżeli nie, tworzę go za pomocą polecenia INSERT, a jeżeli już istnieje zwiększam mu licznik dla dnia dzisiejszego o 1.

Nasza tablica ze statystyką zwiększa się o jedno kliknięcie dla danego ID w danym dniu. Na końcu następuje przekierowanie pod określoną identyfikatorem stronę lub do strony index.php jeżeli nie było w bazie odnośnika o podanym identyfikatorze.

Odwołanie do śledzonego odnośnika z poradami może tak, jak wspomniałem, a więc następująco:

<a href="go.php?id=2" target="_blank">skocz do porad</a>

Jeżeli potrzebujesz zestawienie kliknięć, wystarczy użyć pytania w postaci:

SELECT data, licznik FROM kliki WHERE id=2 ORDER BY data;

I otrzymasz ładny raport ile było kliknięć w ciągu wszystkich dni dla odnośnika o identyfikatorze 2 (czyli do porad).

Jeżeli chcesz policzyć ile było wszystkich kliknięć (przez wszystkie dni) dla danego ID, użyj pytania w postaci:

SELECT SUM(licznik) FROM kliki WHERE id=2;



Wyszukiwarka

Podobne podstrony:
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
jak pobrac zdalny plik na lokalny server raz dziennie, PHP Skrypty
jak miedzy stronami przesłać zmienne korzystajac z sesji, PHP Skrypty
Jak zrobić przekierowanie z jednej strony na drugą, PHP Skrypty
jak wypisac zawartosc bazy danych dBase (dbf), PHP Skrypty
Jak dopisać dane na początku pliku tekstowego, PHP Skrypty
Jak wygenerować statyczny plik .html z bazy danych, PHP Skrypty
Jak zamienić liczby na kwoty zapisane słownie, PHP Skrypty
jak samodzielnie obliczyc numer dnia w dowolnym roku, PHP Skrypty
Jak odbierać dane pochodzące z różnych pól formularza, PHP Skrypty
Jak wysłać list do grup dyskusyjnych USENET, PHP Skrypty
Jak cenzurować wypowiedzi i brzydkie słowa na forum, PHP Skrypty
jak w grafice zmienic wybrane kolory na inne, PHP Skrypty
jak wykonac strone z logowaniem do innej strony, PHP Skrypty
Jak automatycznie pokolorować na przemian wiersze tabeli, PHP Skrypty
Jak zrobić licznik pobrań plików ze strony, PHP Skrypty
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty

więcej podobnych podstron