Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zliczanie wejść w link
Forum PHP.pl > Forum > Przedszkole
kamil9012
Witam.
Na forum opartym na skrypcie mybb użytkownicy posiadają swoje linki polecające typu http://domena.pl/member.php?action=register&referrer=84, gdzie 84 na końcu to ID użytkownika, który posiada ten link i który poleca forum.

W jaki sposób mogę zrobić żeby były zliczane wejścia w taki link i żeby były zapisywane do bazy mysql? Od czego mam zacząć?


Oc[php][/php]zywiście za pomoce rady każdemu się odwdzięczam smile.gif


Z góry dziękuję.
thek
Jedyna modyfikacja to dopisanie w pliku member.php zliczania i tego co chcesz jeszcze w owej sytuacji zrobić, gdy akcją jest rejestracja.
Mackos
A nie wiem czy nie opłaci Ci się bardziej zapisywać tej liczby po prostu do pliku, tymbardziej jeśli miałoby być zliczane jako unikalne wejścia.
sadistic_son
No to w czym problem? W tabeli uzytkownikow dajesz dodatkową kolumnę - ilosc_wejsc i jedziesz:
  1. if(isset($_GET['referrer']) && is_int($_GET['referrer'])){
  2. @mysql_query("UPDATE users SET ilosc_wejsc = ilosc_wejsc +1 WHERE id = $_GET[referrer]");
  3. }


@UP - no jak do pliku? I co, 1000 użytkowników da Ci 1000 plików. Albo plik z 1000 linijkami. Baza i koniec.
Mackos
No ok, w przypadku tej strony może nie ale w serwisie zajmującym się wyświetlaniem bannerów, i zliczaniem kliknięć i wyświetleń, wydaje mi się że bezpieczniej będzie jeśli info o kliknięciach i wyświetleniach będzie zapisywane do plików i co jakiś czas zliczane i dopiero wtedy zapisywane do bazy, w przypadku gdyby taki serwis generował 100tyś unikalnych wyświetleń dziennie wydaje mi się to być bardziej optymalnym sposobem na odciążenie bazy dancyh. Tylko tu się rodzi pytanie co bardziej oszczędzać bazę danych czy cały serwer tongue.gif
kamil9012
Cytat(sadistic_son @ 20.09.2011, 11:58:36 ) *
No to w czym problem? W tabeli uzytkownikow dajesz dodatkową kolumnę - ilosc_wejsc i jedziesz:
  1. if(isset($_GET['referrer']) && is_int($_GET['referrer'])){
  2. @mysql_query("UPDATE users SET ilosc_wejsc = ilosc_wejsc +1 WHERE id = $_GET[referrer]");
  3. }


@UP - no jak do pliku? I co, 1000 użytkowników da Ci 1000 plików. Albo plik z 1000 linijkami. Baza i koniec.



W najbliższym czasie wypróbuję ten sposób. Ciekawie mnie jeszcze fakt jak zrobić żeby np były zliczane wejścia tylko unikalne/24h ?
sadistic_son
Cytat
(...)żeby np były zliczane wejścia tylko unikalne/24h.
Rozwiń tę myśl bo nie bardzo rozumiem co chcesz osiągnąć. Chodzi o to aby dodanie punktu ilosc_wejsc nastepowalo nie czesciej niz raz na 24h nawet jesli kliknieto wiecej razy?
boro11
Chodzi mu o to że jeden człowiek może "nabić" tylko jeden punkcik raz na 24 godziny.
Mackos
No to cookies, albo wspomniane zapisanie do pliku adresu ip.
sadistic_son
Cytat(Mackos @ 20.09.2011, 18:38:47 ) *
No to cookies, albo wspomniane zapisanie do pliku adresu ip.
A najlepiej oba na raz. Jednakże nic nie daje 100% pewnego zabezpieczenia.
kamil9012
Dodałem na samym końcu pliku member.php, ale oczywiście przed zamknięciem kodu PHP ?> poniższe linijki:


  1. if(isset($_GET['referrer']) && is_int($_GET['referrer']))
  2. {
  3. mysql_query("UPDATE mybb_users SET ilosc_wejsc = ilosc_wejsc +1 WHERE uid = $_GET[referrer]");
  4. }


Wcześniej utworzyłem nowe pole w PHPmyadmin o nazwie ilosc_wejsc(typ integer, długość 10, atrybut unsigned, z domyślną wartością 0) w tabeli mybb_users i niestety nie działa tzn nie zlicza wejść w link typu http://domena.pl/member.php?action=register&referrer=84 .


domyśla się ktoś może dlaczego?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.