Ya, sejujurnya, kode ini berlawanan dengan kode yang benar.
Karena Anda tampaknya baru mulai mempelajari basis data, saya sangat menyarankan Anda untuk menggunakan cara paling dasar, yang akan menyimpan setiap hit. Ini akan membuat kode Anda lebih pendek secara dramatis dan memungkinkan Anda mempelajari fungsi basis data dasar.
Jadi buat tabel Anda seperti
dt datetime,
ip varchar(15),
dan kemudian pada setiap klik jalankan kueri seperti ini
$stmt = $DB_CON->prepare("INSERT INTO stats VALUES (NOW(),?)");
$stmt->execute([$_SERVER['REMOTE_ADDR']]);
dan untuk mendapatkan hitungan Anda harus menjalankan kode ini
$count = $DB_CON->query("SELECT count(*) FROM stats")->fetchColumn();
Kueri terakhir ini paling penting:seperti yang Anda lihat, database dapat menghitung (serta menjumlahkan, menghitung rata-rata, atau melakukan perhitungan apa pun) untuk Anda. Jadi Anda tidak boleh melakukan perhitungan apa pun di sisi PHP tetapi selalu meminta hasil akhir dari database.
Dengan penyiapan basis data ini, Anda akan dapat memperoleh lalu lintas harian, cukup dengan mengelompokkan hasil seperti ini:
$daily = $DB_CON->query("SELECT count(*), date(dt) FROM stats GROUP BY date(dt)")->fetchAll();
Dan bahkan bisa mendapatkan pengunjung baru juga.