Počítadlo přístupů využívající MySQL 2
Počítadlo popsané v předchozím článku toho moc neumělo. V tomto článku se pokusím trochu rozšířit jeho schopnosti.
Pro statistiku je důležité vědět nejenom kolik lidí naše stránky navštíví celkem, ale i jaká byla návštěvnost v jednotlivých dnech.
Tabulka bude trochu složitější, protože potřebujeme víc řádků, je vhodné definovat primární klíč.
CREATE TABLE `counter_mysql2` ( `ID` int(10) unsigned NOT NULL auto_increment, `Date` date NOT NULL, `Count` int(11) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
První sloupec (ID) je primární klíč, ve druhém sloupci budou uchovávána data dnů a ve třetím počet přístupů v daný den.
Při vkládání záznamů do tabulky budeme muset vyřešit následující problém. Protože každý den má svůj řádek, musíme ověřit, jestli se jedná o první zápis v daný den nebo ne. To by samozřejmě šlo udělat pomocí jednoduchého SQL dotazu, ale tím by se počítadlo zbytečně zpomalilo. Lepší taktikou je pokusit se nejdřív o update sloupce. Po updatu zkontrolujeme počet ovlivněných řádků.[1] Pokud bude roven nule, znamená to, že řádek s dnešním datem ještě v tabulce neexistuje, proto ho musíme vytvořit pomocí příkazu INSERT.
// PŘIČTENÍ NOVÉHO PŘÍSTUPU
$updt = MySQL_Query('UPDATE `counter_mysql2`
SET `Count` = `Count` + 1
WHERE `Date` = NOW()');
if (MySQL_Affected_Rows() == 0)
{
MySQL_Query('INSERT INTO `counter_mysql2`
(`Date`, `Count`) VALUES
(NOW(), 1)');
}
Poslední částí skriptu je zobrazování uložených údajů. Nejčastěji potřebujeme zjistit buď počet přístupů v aktualním dni nebo celkový počet přístupů. K tomu slouží následující dva příkazy.
// ZJIŠTĚNÍ POČTU PŘÍSTUPŮ ZA DNESEK
$res = MySQL_Query('SELECT `Count`
FROM `counter_mysql2`
WHERE `Date` = NOW()');
$data = MySQL_Fetch_Assoc($res);
// ZJIŠTĚNÍ CELKOVEHO POČTU PŘÍSTUPŮ
$res = MySQL_Query('SELECT Sum(`Count`) AS `Sum`
FROM `counter_mysql2`');
$data2 = MySQL_Fetch_Assoc($res);
Celý skript je zde.
Zobrazení údajů uložených v tabulce
Vypsání přehledné tabulky obsahující údaje uložené v databázi je velmi jednoduché. Stačí k tomu jeden SQL příkaz.
$res = MySQL_Query("SELECT Date_Format(`Date`, '%d.%m %Y') AS `Date`, `Count`
FROM `counter_mysql2`
ORDER BY `ID` DESC");
Pomocí SQL funkce Date_Format[2] zformátujeme datum do požadovaného tvaru. Výsledky budeme řadit podle primárního klíče, tak aby se nahoře zobrazoval nejnovější údaj. Zpracování dat získaných z MySQL je jednoduché. Příklad jednoduchého skriptu je zde.
LICENCE
Všechny skripty na tomto webu jsou poskytovány, pokud není uvedeno jinak, bez jakýchkoliv licenčních požadavků a také bez záruk.