Как я могу сделать счетчик посещений для ежедневного, еженедельного и ежемесячного подсчета?

0

У меня есть этот простой 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]";
?>
  • 1
    MySQL DATEDIFF и GROUP BY ваши друзья на этом. Конечно, используйте mysqli или PDO .
  • 1
    Я не могу поверить, что все еще есть люди, использующие mysql_* .. Это устарело уже 4 года? И это даже не работает в PHP7 + больше. Сколько еще подсказок вам нужно, прежде чем вы поймете, что вам больше не следует использовать его и вместо этого использовать MySQLi или PDO?
Показать ещё 3 комментария
Теги:
database

1 ответ

1

Чтобы начать работу:

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:

Теперь у вас есть информация о дате, чтобы агрегировать, и вы не храните строку за каждый удар, что было бы довольно расточительным.

  • 0
    Хорошее использование ON DUPLICATE ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню