Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP] Wizyty na stronie
mrk9109
post 18.02.2018, 22:06:18
Post #1





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Witam potrzebuje porady jak to zrobić statystyki odwiedzin otóż napisałem coś takiego :

  1. $ip = $_SERVER['REMOTE_ADDR'];
  2.  
  3. $zapytanie="SELECT ip FROM wizyty WHERE ip='".$ip."' ";
  4. $wynik = mysqli_query($polaczenie,$zapytanie);
  5. $sprawdz_ip = mysqli_num_rows($wynik);
  6.  
  7. if ($sprawdz_ip == 0)
  8. {
  9. $zapytanie="UPDATE wizyty SET ip='".$ip."', dzis= dzis+1 ";
  10. $start = mysqli_query($polaczenie,$zapytanie);
  11. }


i śmiga ale mam 2 pytania otóż mam kolumnę dziś i wczoraj jak zrobić aby wyniki z dziś dodawał do wczoraj po upływie 24h i czyścił bazę z ip ? narazie zrobiłem UPDATE ale myślalem o INSERT by dodawal każde ip . Chyba że ktoś ma inne prostsze rozwiązanie ?
Go to the top of the page
+Quote Post
markuz
post 18.02.2018, 22:44:39
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Może użyć Google Analytics? smile.gif

Kolumna dziś i wczoraj nie brzmi dobrze. Zacznij od zmiany struktury bazy.

Ten post edytował markuz 18.02.2018, 22:45:27


--------------------
Go to the top of the page
+Quote Post
mrk9109
post 18.02.2018, 23:20:56
Post #3





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


już wykombinowałem przerobiłem to na date smile.gif i planuje odczytywac na dzis wszystkie z dana data a na wczoraj date-1 dobrze kombinuje ?

tylko możesz mi podpowiedzieć jak zrobić czasowe ip ? by dodawał je na 24h tylko
Go to the top of the page
+Quote Post
markuz
post 18.02.2018, 23:28:05
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


A dlaczego nie Google Analytics? Albo jakiś inny system do liczenia statystyk?

Sprawdzasz czy dane IP istnieje w ostatnich 24h, jak nie to dodajesz jak istnieje to nie dodajesz.


--------------------
Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 09:16:35
Post #5





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


coś pomyliłem z warunkiem bo nie wykonuje UPDATE tylko caly czas INSERT :< a co do odp nie google bo chce zrobic ladnie Odwiedzilo nas dzis ...

  1. <?php
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $dataW = date("d.m.Y");
  5.  
  6. $zapytanie="SELECT ip FROM wizyty WHERE ip='".$ip."' ";
  7. $wynik = mysqli_query($polaczenie,$zapytanie);
  8. $sprawdz_ip = mysqli_num_rows($wynik);
  9.  
  10. $zapytanie2="SELECT data FROM wizyty WHERE data='".$data."' ";
  11. $wynik2 = mysqli_query($polaczenie,$zapytanie);
  12. $sprawdz_data = mysqli_num_rows($wynik2);
  13.  
  14. if ($dataW == $sprawdz_data && $sprawdz_ip == 0)
  15. {
  16. $zapytanie="UPDATE wizyty SET ip='".$ip."', wizyty= wizyty+1 WHERE data = '".$data."'";
  17. $start = mysqli_query($polaczenie,$zapytanie);
  18. }
  19. else
  20. {
  21. $zapytanie = "INSERT INTO `wizyty` (`data`, `wizyty`, `ip`)
  22. VALUES ('".$dataW."',
  23. '1',
  24. '".$ip."'
  25. );";
  26. $start = mysqli_query($polaczenie,$zapytanie);
  27. }
  28.  
  29.  
  30. ?>
  31.  


Ten post edytował mrk9109 19.02.2018, 09:17:19
Go to the top of the page
+Quote Post
markuz
post 19.02.2018, 09:24:06
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


$sprawdz_data to ilość rekordów, $dataW to obecna data - jak to może być kiedykolwiek równe? smile.gif


--------------------
Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 09:45:34
Post #7





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Wszystko działa ale mam inny problem i potrzebuje porady otóż nadpisuje mi każdy raz IP tzn jeżeli wejde na strone jest moje IP i liczy wizytę jeżeli znów wejdzie ktoś inny zapisuje jego IP i po ponownym moim wejściu znów mnie liczy i wtedy nadpisuje moje ip . Jak to rozwiązać ?

Ten post edytował mrk9109 19.02.2018, 10:35:01
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 10:36:36
Post #8





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




WHERE data = '".$data."'";
no skoro dla kretyrium dla wpisu bierzesz tylko date to dosc logiczne ze wszystko inne nadpisuje...


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 10:38:23
Post #9





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


Wiem już to poprawiłem zczaiłem się ale mam inny problem co edytowałem i napisałem wyżej z tym IP jakaś sugestia ? jak to zabezpieczyć ?
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 10:39:58
Post #10





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Nie wiem o jakim "napisalem wyzej" mowisz. Bo ja nic nowego nie widze


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 10:41:06
Post #11





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


edytowałem post za nim zobaczyłem twoją odp .

"mam inny problem i potrzebuje porady otóż nadpisuje mi każdy raz IP tzn jeżeli wejde na strone jest moje IP i liczy wizytę jeżeli znów wejdzie ktoś inny zapisuje jego IP i po ponownym moim wejściu znów mnie liczy i wtedy nadpisuje moje ip . Jak to rozwiązać ? "
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 10:42:11
Post #12





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




No to przeciez moj post do tego wlasnie sie odnosil....


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 10:50:57
Post #13





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


To jak to sformułować wziąć pod uwagę datę żeby wiedzieć który jest dzień i co id , ip ? nie mam pojęcia 1 raz bawię się statystykami jadę powolutku z każdym działem jak wiesz tongue.gif
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 10:55:25
Post #14





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




1) Ciezko dodac AND IP do tego warunku?
2) Zmien kod na INSERT...ON DUPLICATE KEY i zaloz klucz na IP i date. Zaoszczedzisz sobie pieprzenia w dwa tysiace zapytan przed wlozeniem rekordu do bazy.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 11:13:24
Post #15





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


kurde tak ?

  1. zapytanie = mysqli_query($polaczenie,"UPDATE wizyty SET ip='".$ip."', wizyty= wizyty+1 WHERE data = '".$dataW."' AND ip ='".$ip."'");


to wtedy nie dodaje new
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 11:14:21
Post #16





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




A co ma dodawac nowe jak to jest zapytanie UPDATE....


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 11:19:49
Post #17





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


nie dziala i nie rozumie tego ON DUPLICATE KEY 1x mam z tym doczynienia

  1. $zapytanie = mysqli_query($polaczenie,"INSERT INTO `wizyty` (`ip`, `wizyty`) VALUES ( '".$ip."', wizyty+1 ) WHERE data = '".$dataW."' AND ip ='".$ip."'");
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 11:21:17
Post #18





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Polecenie INSERT nie posiada warunku.

Zeby cos zrozumiec trzeba moze by wpierw zajrzec do manuala do danej funkcji? Po kodzie co wstawiles teraz widze ze nie zajrzales tylko strzelasz. W manuala masz pelno przykladow.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mrk9109
post 19.02.2018, 11:25:56
Post #19





Grupa: Zarejestrowani
Postów: 445
Pomógł: 3
Dołączył: 4.06.2010

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


juz wklejam caly kod jak wyglada

  1. <?php
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $dataW = date("d.m.Y");
  5. $sprawdz_data = 0;
  6.  
  7. $zapytanie="SELECT ip FROM wizyty WHERE ip='".$ip."' ";
  8. $wynik = mysqli_query($polaczenie,$zapytanie);
  9. $sprawdz_ip = mysqli_num_rows($wynik);
  10.  
  11. $zapytanie2 = mysqli_query($polaczenie,"SELECT `data` FROM `wizyty` ORDER BY `data` DESC LIMIT 0,1");
  12. while($dbW = $zapytanie2 -> fetch_assoc() ) {
  13. $sprawdz_data=$dbW['data'];
  14. }
  15. if ($dataW == $sprawdz_data && $sprawdz_ip == 0)
  16. {
  17. $zapytanie = mysqli_query($polaczenie,"INSERT INTO `wizyty` (`ip`, `wizyty`) VALUES ( '".$ip."', wizyty+1 ) WHERE data = '".$dataW."' AND ip ='".$ip."'");
  18. }
  19. elseif ($dataW > $sprawdz_data )
  20. {
  21. $zapytanie = "INSERT INTO `wizyty` (`data`, `wizyty`, `ip`)
  22. VALUES ('".$dataW."',
  23. '1',
  24. '".$ip."'
  25. );";
  26. $start = mysqli_query($polaczenie,$zapytanie);
  27. }
  28.  
  29. ?>
  30.  
Go to the top of the page
+Quote Post
nospor
post 19.02.2018, 11:34:16
Post #20





Grupa: Moderatorzy
Postów: 36 441
Pomógł: 6290
Dołączył: 27.12.2004




Nie prosilem o caly kod... Napisalem co masz zle i napisalem bys zajrzal do manuala. Zamiast tego wklejasz mi caly kod. Jak to ma sie do tego ze nadal nie poprawiles tego o co prosilem i nadal nie zajrzales do manuaal jak prosilem?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 16.04.2024 - 22:42