Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem mysql - počítadlo (výběr podle data)

Zdarec. Vytvořil jsem si počítadlo uživatelů na webu, ale mám tu jeden problém. Chci, aby mi to při hodnotě "dnes" vypsalo pouze ty lidi, kteří dnes doopravdy došli (je 22:05, takže lidi, kteří navštívili stránku 00:00 - 22:05).
Dostal jsem se jen k tomuto - jak to udělat tak, abych získal, co chci?

Tento code mi ukáže uživatele, kteří web navštívili v posledních 24 hodinách.

$sum = 0;
	$dotaz = mysql_query("SELECT * FROM `counter` WHERE `last_change` <= date_sub(now(), INTERVAL 1 DAY)");
	while ($vypis = mysql_fetch_assoc($dotaz)) {
		$sum = $sum + 1;
	}
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
A pokud máš opravdu velkou návštěvnost a v tabulce counter je hodně záznamů, pak by se měla tabulka…
Jan Fiala 06.04.2016 06:55
Jan Fiala
Jak to myslíte? Přesně jsem to nepochopil. last_change mám nastavený jako TIMESTAMP a count mám nast…
Vilak 06.04.2016 12:51
Vilak
chcel tym povedat to, ze do tabulky counter nebudes insertovat kazdy vstup pouzivatela ako novy riad… nový
wam_Spider007 06.04.2016 13:39
wam_Spider007
Tak to taky mám. ip, count, last_change. :) Takže třeba u ip xxx.xxx.xxx.xxx mám count 3, což znamen… nový
Vilak 06.04.2016 21:14
Vilak
Nemas. Ty zapisujes kazdou IP zvlast, takze kdyz ti tam prijde 10 000 navstevniku za den, budes za r… poslední
Jan Fiala 07.04.2016 06:41
Jan Fiala

A pokud máš opravdu velkou návštěvnost a v tabulce counter je hodně záznamů, pak by se měla tabulka chovat opravdu jako počítadlo se strukturou - Datum date, Pocet int
Návštěvník by ti zvednul Pocet a ty bys jej pouze vybral a zobrazil a nemusel bys pri kazde navsteve zamestnavat server vypocty

chcel tym povedat to, ze do tabulky counter nebudes insertovat kazdy vstup pouzivatela ako novy riadok, ale budes mat len dvojicu DATUM - POCET.

Pricom ked pouzivatel vojde na stranku, tak len updatnes pole POCET a inkrementujes ho o 1.
Pri citani potom uz len najdes riadok s dnesnym datumom a vypises hodnotu z pola POCET.

Ak ti bude na stranku chodit denne povedzme 10k ludi a kazdemu chces zobrazit pocet dnesnych navstev, tak vzdy budes selectovat tisice a tisice riadkov z DB co bude do par dni pomale.

Ale to je len HINT, zalezi aj od ucelu a do akej urovne potrebujes mat zalogovane, kto a kedy dosiel na stranku. V takom pripade sa da kombinovat to co robis ty (podrobne logovanie) s tabulkou kde si len inkrementujes hodnotu. Podrobne zalogovanie bude sluzit tebe a ta druha tabulka na rychle zobrazenie navstev.

Nemas. Ty zapisujes kazdou IP zvlast, takze kdyz ti tam prijde 10 000 navstevniku za den, budes za rok vybirat data mezi vic jak 3,5 miliony radku.
Pokud by sis krome te existujici toho udelal dalsi tabulku, kde bys mel opravdu jen pocitadlo - den a pocet, pak to budes mit neskutecne rychlejsi a nebudes zatezovat server. A tu svou velkou muzes pouzivat na nejake sve vyhodnocovani.

Dalsi vec. Co kdyz se ti tam pripoji spousta lidi od jednoho poskytovatele, kteri vystupuji ven pod jednou IP adresou? Unikatni navstevnik se nerozeznava jen podle IP adresy.

Zpět do poradny Odpovědět na původní otázku Nahoru