sql >> Databasteknik >  >> RDS >> Mysql

PHP Count site view skapar en rad varje dag

Ja, ärligt talat, den här koden är precis mitt emot en korrekt.

Eftersom du tydligen precis har börjat lära dig databaser, skulle jag starkt rekommendera dig att gå den mest grundläggande vägen, som kommer att lagra varje träff. Det kommer att göra din kod dramatiskt kortare och låter dig lära dig grundläggande databasfunktioner.

Så gör ditt bord som

dt datetime,
ip varchar(15),

och sedan kör en fråga som denna vid varje träff

$stmt = $DB_CON->prepare("INSERT INTO stats VALUES (NOW(),?)");
$stmt->execute([$_SERVER['REMOTE_ADDR']]);

och för att få räkningen måste du köra den här koden

$count = $DB_CON->query("SELECT count(*) FROM stats")->fetchColumn();

Denna sista fråga är viktigast:som du kan se kan en databas räkna (liksom summa, räkna medelvärden eller göra vad som helst annat beräkningar) åt dig. Så du bör aldrig göra några beräkningar på PHP-sidan utan alltid begära det slutliga resultatet från databasen.

Med denna databasinställning kommer du att kunna få din dagliga trafik genom att helt enkelt gruppera resultaten på detta sätt:

$daily = $DB_CON->query("SELECT count(*), date(dt) FROM stats GROUP BY date(dt)")->fetchAll();

Och kan till och med få nya besökare också.




  1. Hur man lägger till två kolumner av typen tidsstämpel och heltal

  2. Har ett problem med att binda parametrar till en PDO-deklaration

  3. Hur kan jag översätta FileNet ID ID i DB2/Oracle till ett användarvänligt GUID?

  4. MySQL-funktion för att beräkna avståndet mellan två latituder och longituder