Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] zapytanie do bazy - jak to zrobic?, dot. skomplikowanego zapytania...
rml
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


witam,

to znow ja z moimi skomplikowanymi zapytaniami (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ktore niektorzy uwazaja za proste... ale...


mam tabele:

| ip | godz | data |

a zalozenia sa takie ze moze byc wiele wpisow z jednego ip (to takie jakby statystyki)...

a teraz potrzebuje rozroznic wizyty od zwyklych klikniec, czyli zakladam ze kazde ip ma 60 minut na to zeby stracic aktywnosc (jak nastapi klikniecie z tego samego ip po 60 minutach - zalicza kolejna wizyte).

no i teraz - jak zapytac baze danych o wszystkie wpisy z danego ip ktore sa "nie starsze niz godzine temu"? problemem jest to ze zmienia nam sie punkt odniesienia, bo to musi byc godzina od ostatniego klikniecia... czyli od ostatniego wpisu... pamietajac o tym ze moze nastapic kolejne klikniecie z tego ip (wiec nie mozna sie ograniczyc do daty...)

poza tym: czy zapisywanie daty i czasu w oddzielnych kolumnach nie powoduje jakiegos problemu? czy on wie ze np. jak cofam go o 60 min o godzinie 0:10 to ze zmieni mu sie data? jak sobie poradzic ze zliczaniem takich wizyt - ktore beda zahaczac o rozne daty?


pozdrawiam serdecznie,
rml.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gilbo
post
Post #2





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

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


Nie wiem oco ci chodzi? L_Devil Podał ci dobre rozwiązanie problemu a ty nażekasz. Może chodzi o to, że to nie ma być skrypt tylko samo zapytanko do mysql ale to można napisać a nie nażekasz...

Problem jest prosty tylko jakbyś tłumaczył lepiej to na pewno uzyskałbyś odrazu odpowiedź a ty snujesz opowiadania nie potrzebne zamiast przedstawić rzeczowo problem!

No więc zapytanie SQL powinno wyglądać tak:
  1. SELECT *
  2. FROM tablica WHERE date<(unix_timestamp()-3600) AND ip='adresip'


Żeby nie było wątpliwości przetłumaczę na "ludzki" (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
  1. WYBIERZ WSZYSTKO Z tablicy GDZIE date JEST MNIEJSZE NIŻ (DATA UNIXOWA MINUS 3600 MILISEKUND) I ip RÓWNA SIę 'adresip'


Pozdrawiam w wierze że skapniesz się że 'adresip' musisz zamienić na cyferki oddzielone kropkami które tworzą adres ip np 127.0.0.1 dzięki czemu nie wytkniesz mi jakiegoś straszliwego błędu:D

Pozdrowienia (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował gilbo 18.06.2005, 12:50:04
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 19:22