mrk9109
18.02.2018, 22:06:18
Witam potrzebuje porady jak to zrobić statystyki odwiedzin otóż napisałem coś takiego :
$ip = $_SERVER['REMOTE_ADDR'];
$zapytanie="SELECT ip FROM wizyty WHERE ip='".$ip."' ";
$wynik = mysqli_query($polaczenie,$zapytanie);
$sprawdz_ip = mysqli_num_rows($wynik);
if ($sprawdz_ip == 0)
{
$zapytanie="UPDATE wizyty SET ip='".$ip."', dzis= dzis+1 ";
$start = mysqli_query($polaczenie,$zapytanie);
}
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 ?
markuz
18.02.2018, 22:44:39
Może użyć Google Analytics?

Kolumna dziś i wczoraj nie brzmi dobrze. Zacznij od zmiany struktury bazy.
mrk9109
18.02.2018, 23:20:56
już wykombinowałem przerobiłem to na date

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
markuz
18.02.2018, 23:28:05
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.
mrk9109
19.02.2018, 09:16:35
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 ...
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$zapytanie="SELECT ip FROM wizyty WHERE ip='".$ip."' ";
$wynik = mysqli_query($polaczenie,$zapytanie);
$sprawdz_ip = mysqli_num_rows($wynik);
$zapytanie2="SELECT data FROM wizyty WHERE data='".$data."' ";
$wynik2 = mysqli_query($polaczenie,$zapytanie);
$sprawdz_data = mysqli_num_rows($wynik2);
if ($dataW == $sprawdz_data && $sprawdz_ip == 0)
{
$zapytanie="UPDATE wizyty SET ip='".$ip."', wizyty= wizyty+1 WHERE data = '".$data."'";
$start = mysqli_query($polaczenie,$zapytanie);
}
else
{
$zapytanie = "INSERT INTO `wizyty` (`data`, `wizyty`, `ip`)
VALUES ('".$dataW."',
'1',
'".$ip."'
);";
$start = mysqli_query($polaczenie,$zapytanie);
}
?>
markuz
19.02.2018, 09:24:06
$sprawdz_data to ilość rekordów, $dataW to obecna data - jak to może być kiedykolwiek równe?
mrk9109
19.02.2018, 09:45:34
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ć ?
nospor
19.02.2018, 10:36:36
WHERE data = '".$data."'";
no skoro dla kretyrium dla wpisu bierzesz tylko date to dosc logiczne ze wszystko inne nadpisuje...
mrk9109
19.02.2018, 10:38:23
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ć ?
nospor
19.02.2018, 10:39:58
Nie wiem o jakim "napisalem wyzej" mowisz. Bo ja nic nowego nie widze
mrk9109
19.02.2018, 10:41:06
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ć ? "
nospor
19.02.2018, 10:42:11
No to przeciez moj post do tego wlasnie sie odnosil....
mrk9109
19.02.2018, 10:50:57
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
nospor
19.02.2018, 10:55:25
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.
mrk9109
19.02.2018, 11:13:24
kurde tak ?
zapytanie = mysqli_query($polaczenie,"UPDATE wizyty SET ip='".$ip."', wizyty= wizyty+1 WHERE data = '".$dataW."' AND ip ='".$ip."'");
to wtedy nie dodaje new
nospor
19.02.2018, 11:14:21
A co ma dodawac nowe jak to jest zapytanie UPDATE....
mrk9109
19.02.2018, 11:19:49
nie dziala i nie rozumie tego ON DUPLICATE KEY 1x mam z tym doczynienia
$zapytanie = mysqli_query($polaczenie,"INSERT INTO `wizyty` (`ip`, `wizyty`) VALUES ( '".$ip."', wizyty+1 ) WHERE data = '".$dataW."' AND ip ='".$ip."'");
nospor
19.02.2018, 11:21:17
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.
mrk9109
19.02.2018, 11:25:56
juz wklejam caly kod jak wyglada
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$sprawdz_data = 0;
$zapytanie="SELECT ip FROM wizyty WHERE ip='".$ip."' ";
$wynik = mysqli_query($polaczenie,$zapytanie);
$sprawdz_ip = mysqli_num_rows($wynik);
$zapytanie2 = mysqli_query($polaczenie,"SELECT `data` FROM `wizyty` ORDER BY `data` DESC LIMIT 0,1");
while($dbW = $zapytanie2 -> fetch_assoc() ) {
$sprawdz_data=$dbW['data'];
}
if ($dataW == $sprawdz_data && $sprawdz_ip == 0)
{
$zapytanie = mysqli_query($polaczenie,"INSERT INTO `wizyty` (`ip`, `wizyty`) VALUES ( '".$ip."', wizyty+1 ) WHERE data = '".$dataW."' AND ip ='".$ip."'");
}
elseif ($dataW > $sprawdz_data )
{
$zapytanie = "INSERT INTO `wizyty` (`data`, `wizyty`, `ip`)
VALUES ('".$dataW."',
'1',
'".$ip."'
);";
$start = mysqli_query($polaczenie,$zapytanie);
}
?>
nospor
19.02.2018, 11:34:16
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?
mrk9109
19.02.2018, 23:21:20
nie wiem czy dobrze szukam w manualu ... ale kombinuje nad czyms takim
przeczytalem duzo w manualu zrobilem efekt niżej ale nie wykonuje zapytania why ?
http://wklej.org/id/3370706/You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET ip='127.0.0.1', wizyty= wizyty+1 WHERE data = '19.02.2018 AND ip='127.0.0.1'' at line 3
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.