Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Liczba klikniec uzytkownikow w kolejnych dniach
marcinw77
post 9.02.2009, 19:57:40
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.12.2008

Ostrzeżenie: (0%)
-----


Witam

Potrzebuje na mojej stronie wstawic wykres z FusionCharts(ale to nie to jest problemem) ktory bedzie przedstawial ilosc klikniec w linki uzytkownikow przez ostatnie 15 dni.

Moi uzytkownicy(nie mam ich jeszcze, co ulatwia sprawe) klikaja codziennie w platne linki. W kazdy link moga kliknac tylko 1 raz dziennie - o konkretnej porze sa resetowane i mozna klikac znowu.

CODE
$mbs = date("h:i A",$set['next_clearup']);


Jest to strona Paid-To-Click (popularny bux) moze ktos wie z doswiadczenia jak to dziala

Oczywiscie kazdy uzytkownik w bazie ma pola username, ... itp  I jest tez total clicks (wszystkie klikniecia od samej rejestracji).

Domyslam sie ze potrzebuje dodac 15 pol. Problemem jest to jak wprowadzac do bazy ilosc klikniec (przy kazdym kliknieciu sa dodawane do uzytkownika) tak aby w kazdym z tych dni(zgodnie z czasem resetu) byl dodawany do oddzielnego pola.  Drugim problemem jest to, jak zastepowac pozniej te dane kiedy liczba dni przekroczy te 15.



Bylbym bardzo wdzieczny, gdyby ktos pomogl mi w jakis sposob. Nie wiem czy to jakos jasno napisalem i wytlumaczylem.

Pozdrawiam i dziekuje z gory za jakas pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Eagle
post 9.02.2009, 22:40:41
Post #2





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Nie wiem czy dobrze zrozumiałem
Masz w tabeli dane użytkownika + 15 pól. W każdym z tych dodatkowych(15) pól trzymasz ilość kliknięć (dzień pierwszy 5 kliknięć w 1 polu; dzień drugi 15 kliknięć w 2 polu)?
Jeżeli tak to proponuje zrobić zamiast użytkownika z X+15 polami osobną tabelę o strukturze
Kod
ID Użytkownika | ID Linku | Ilość kliknięć |

Gdzieś będziesz przechowywał aktualny ID linku (lub nazwę pola która by się znajdowała w tabeli z użytkownikami).
Przykłądowo
Kod
1 | 5 | 10 |
1 | 4 | 3  |
2 | 5 | 4  |

Co będzie przedstawiało że użytkownik o ID 1 wlazł w linka o id 5 - 10razy a w linka o id 4 - 3razy, użytkownik o ID w linka o ID 5 - 4 razy.
A update będzie zrobić prosto ...
  1. UPDATE `kliknięcia` [...] WHERE `ilosc_klikniec` > 15


Edit:
Zamiast ID Linku powinien być numer dnia winksmiley.jpg
Mam nadzieje że rozumiesz ?

Ten post edytował Eagle 9.02.2009, 22:43:43
Go to the top of the page
+Quote Post
marcinw77
post 10.02.2009, 17:44:20
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.12.2008

Ostrzeżenie: (0%)
-----


Tak, rozumiem Twoj sposob i wydaje mi sie dosc dobrym rozwiazaniem. Tylko ze codziennie te dni beda mi sie dodawaly i baza bedzie ciagle rosla. Raczej potrzebowalbym zeby tylko te 15 dni bylo ciagle (tymbardziej ze tak mialbym w wykresach ustawione). Jest wogole jakis taki sposob, aby przechowywac tylko wartosci z 15 ostatnich dni (i jakos podmieniac, kasowac itp) ?

Drugi problem to jak to zrobic zeby mi skrypt automatycznie rozdzielal na dni
Go to the top of the page
+Quote Post
Eagle
post 10.02.2009, 18:22:52
Post #4





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


Jeżeli nie będziesz kasował starych rekordów to baza faktycznie będzie rosła.
Przykładowo jeżeli masz 16 dzień to odejmujesz od niego 15, wychodzi 1. Kasujesz rekordy o dniu 1. Jeżeli X dzień - 15 jest <= 0 to nic nie kasujesz. Zapisujesz wtedy pod "aktualny dzień".

Przykład smile.gif
Dzień 5:
  1. <?php
  2. $dzien = 5;
  3. $numer_dnia = $dzien-15;
  4.  
  5. if($numer_dnia <= 0)
  6. {
  7.   // Bez kasowania rekordów w bazie (pierwsze 15dni)
  8. }
  9. else
  10. {
  11.   // Kasowanie rekordów
  12.   $query = ' DELETE [...] WHERE `ID_Dnia` = '.$numer_dnia;
  13.   [...]
  14. }
  15. ?>


W ten sposób możesz przechowywać w bazie zawsze tylko 15dni.

Rozdzielanie dni możesz zrobić np. używając crona.
Każdego dnia o 00:00:01 zwiększasz numer dnia.
Go to the top of the page
+Quote Post
marcinw77
post 10.02.2009, 22:11:00
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.12.2008

Ostrzeżenie: (0%)
-----


Ok dzieki bardzo. Rozwiazalem to moze nie tak samo jak Ty pisales, ale pomogles mi bardzo.

Mam jeszcze pytanie:

Mam zrobione tak, ze u kazdego usera sa pola day1,day2, .., day15. I robie w ustawieniach skryptu (dziala tak jak cron) tak, zeby codziennie kiedy "czas sie resetuje" przepisywalo mi z day2 do day1 wartosci, z day3 do day2 itd i day15 ustawialo wartosc 0 =)

Po prostu nie znam za dobrze tych polecen z mysql i tu potrzebna mi jest mala pomoc:

CODE
mysql_query ('UPDATE users SET day1=\'day2\' ');

mysql_query ('UPDATE users SET day2=\'day3\' ');

...

mysql_query ('UPDATE users SET day15=\'0\' ');


tylko ze jesli dobrze mysle to tutaj przykladowo do day1 zamiast przypisac mi wartosc pola day to wpisze po prostu do rekordu slowo 'day2' tak?  Jak to zrobic, aby przypisywalo wartosc tych pol.

Ten post edytował marcinw77 10.02.2009, 22:13:15
Go to the top of the page
+Quote Post
Eagle
post 10.02.2009, 22:26:43
Post #6





Grupa: Zarejestrowani
Postów: 170
Pomógł: 14
Dołączył: 16.03.2007

Ostrzeżenie: (0%)
-----


  1. UPDATE `users` SET `dzien1` = `dzien2`
smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:54