У меня есть этот простой HIT COUNTER, но я хочу, чтобы он отображал общее количество хитов, основанное на ежедневных, еженедельных, ежемесячных и годовых.
Пример: Сегодня - 24 отсчета Вчера - 8 отсчетов Последний месяц - 45 пунктов Апрель - xx рассчитывает Март - xx counts Февраль - xx counts
Просто что-то простое, но похожее на приведенный выше пример. Я буду признателен, если кто-то может помочь мне изменить мой код для достижения этой цели.
Ниже приведен мой код:
CREATE TABLE 'counter' ( 'counter' INT( 20 ) NOT NULL );
INSERT INTO counter VALUES (0);
<?php
//Adds one to the counter
mysql_query("UPDATE counter SET counter = counter + 1");
//Retrieves the current count
$count = mysql_fetch_row(mysql_query("SELECT counter FROM counter"));
//Displays the count on your site
print "$count[0]";
?>
Чтобы начать работу:
CREATE TABLE 'counter' (
'datestamp' DATE NOT NULL,
'counter' INT NOT NULL,
PRIMARY KEY('datestamp')
);
И затем замените это UPDATE
на:
INSERT INTO 'counter' ('datestamp', 'counter') VALUES ( DATE(NOW()), 1 )
ON DUPLICATE KEY UPDATE 'counter' = 'counter' + 1;
Ref:
Теперь у вас есть информация о дате, чтобы агрегировать, и вы не храните строку за каждый удар, что было бы довольно расточительным.
ON DUPLICATE
...
mysqli
илиPDO
.mysql_*
.. Это устарело уже 4 года? И это даже не работает в PHP7 + больше. Сколько еще подсказок вам нужно, прежде чем вы поймете, что вам больше не следует использовать его и вместо этого использовать MySQLi или PDO?