Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie daty przy dodawaniu punktu
pr0woKator
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 1
Dołączył: 9.02.2012

Ostrzeżenie: (10%)
X----


Cześć wszytkim,

Mam taki problem, a w zasadzie zagwozdkę przy sprawdzaniu czy dany adres IP był przez ostanie 24 godziny.

Tworzę skrypt który ma za zadanie dodać punkt danemu userowi gdy dana osoba wejdzie w jego link z getem, ale tylko raz na 24 gdy IP się powtaża.
Obrazwowo

Sprawdzam czy IP jest w bazie, jeżeli nie to dodaje + Data NOW(); i dodaje punkt,
Sprawdzam czy IP jest w bazie, jeżeli tak to sprawdzam czy minęło 24 godziny od ostatniej wizywy, jeżeli tak dodaje punkt, jeżeli nie - nie się nie dzieje.


Nigdy nie wykonywałem operacji na datach i nie mam pojęcia jak to napisać. Może macie jakieś gotowe rozwiązania na sprawdzanie unikalności IP w danym dniu?
Z góry dziękuję za pomoc.

Wpadłem na takim pomysł:

  1.  
  2. $data_dodania = "2012-07-27";
  3. $aktualna_data = date("Y-m-d");
  4.  
  5. if ($data_dodania != $aktualna_data){
  6.  
  7. // skrypt dodaje punkt
  8. } else {
  9.  
  10. //skrypt nie dodaje punktu
  11. }


co sądzicie?

Ten post edytował pr0woKator 27.07.2012, 11:52:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A o indeksie UNIQUE słyszał? [;


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
lukaskolista
post
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Dokladnie tak. PHP sam wykrywa daty i je porownuje (nie ma do tego jakiegos odrebnego mechanizmu).

erix:
index unique jest bez sensu z prostego powodu: on nie chce za kazdym razem dodawac nowego rekordu, tylko update'owac jeden. Poza tym opieranie sie obledy zwracane przez baze danych jest bez sensu.

Ten post edytował lukaskolista 27.07.2012, 12:03:11
Go to the top of the page
+Quote Post
pr0woKator
post
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 1
Dołączył: 9.02.2012

Ostrzeżenie: (10%)
X----


Czyli sposób jaki "zaryzowałem" będzie ok?
Go to the top of the page
+Quote Post
lukaskolista
post
Post #5





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Bedzie ok, przedstaw wiecej kodu to wtedy ocenimy
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
index unique jest bez sensu z prostego powodu: on nie chce za kazdym razem dodawac nowego rekordu, tylko update'owac jeden. Poza tym opieranie sie obledy zwracane przez baze danych jest bez sensu.

Nie miałem na myśli błędów, tylko ON DUPLICATE KEY UPDATE w tym momencie... tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
lukaskolista
post
Post #7





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


To masz racje, takie rozwiazanie bedzie lepsze, jezeli autor tematu potrafi programowac bazy danych. Przypuszczam, ze tak nie jest, wiec dobierzmy srodki do mozliwosci.
Go to the top of the page
+Quote Post
Crozin
post
Post #8





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Pobierasz rekord(y) gdzie: 1) użytkownik/URL jest taki jak podany w linku; 2) data ostatniego przyznania punktu plus jeden dzień (DATE_ADD()) jest mniejsza od aktualnej daty (NOW()).
Jeżeli zwróci Ci zero rekordów oznacza to, że możesz dodać punkt.

Podpowiedź: powinieneś w osobnej tabeli składować każdy pojedynczy punkt przyznany użytkownikowi, a w tabeli z użytkownikami trzymać co najwyżej sumę tych punktów. O ile nie ma uzasadnionej potrzeby nie powinno się nigdy usuwać/nadpisywać danych - lepiej jest je oznaczyć jako usunięte/nieaktualne.
Go to the top of the page
+Quote Post
pr0woKator
post
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 1
Dołączył: 9.02.2012

Ostrzeżenie: (10%)
X----


Jak naskrobie całość dodawania punktów to przedstawię tutaj i ocienicie. W tym momencie dziękuję za pomoc, odezwę się niedługo 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 Aktualny czas: 21.08.2025 - 16:09