2017-02-11 5 views
0

Ich möchte die Anzahl der Benutzer, die heute im Admin-Bereich meiner Website registriert sind [counting] und gestern mit PHP wiederholen.Count Anzahl der heute und gestern registrierten Benutzer PHP

ich ihre Anmeldedatum speichere in diesem Format

2017-01-09 20:32:40

Nach Googeln fand ich diese

$daterange = "24 HOUR"; 
$sql = "SELECT COUNT(*) 
FROM ad_total_today  
WHERE DATE_SUB(CURDATE(),INTERVAL $daterange) 
<= FROM_UNIXTIME(date_time)"; 

$res = mysql_query($sql); 
$today = mysql_result ($res, 0, 0); 

Aber ich kann nicht scheint es zu verstehen. Kann mir jemand helfen echo Die Gesamtzahl der registrierten Benutzer heute und gestern?

+0

** Benutze ** die ** veralteten und unsicheren ** 'mysql_ *' -Funktionen nicht. Sie sind seit PHP 5.5 (im Jahr 2013) veraltet und wurden in PHP 7 vollständig entfernt. Verwenden Sie stattdessen MySQLi oder PDO. –

+1

* "Aber ich kann es nicht verstehen" * - kann ich nicht verstehen, was genau? Wo wiederholst du es und gibt es irgendwelche Fehler? Die Frage IMHO ist sowohl zu weit als auch unklar; meist unklar. Das Schema ist nicht bekannt, wo UNIXTIME ist/was. –

+0

Dies ist nur die SQL-Abfrage .Wenn ich versuche, heute $ echo. Ich bekomme Fehler. Ich möchte die Gesamtzahl der Benutzer auf meiner Website gestern echo und echo sie im Admin-Panel – user7550234

Antwort

0

Try Below Abfrage

SELECT COUNT(*) 
FROM ad_total_today  
WHERE DATE_SUB IN (CURDATE(), CURDATE() + INTERVAL 1 DAY) 
1

Eine Lösung ist es, die MySQL-Funktion CURDATE(), formatieren Sie Ihre Spalte Datum nur mit DATE() zu verwenden (also müssen wir nicht mit Stunde/Sekunden/Minuten beschäftigen). Dann wählst du aus, was heute oder gestern gleich ist. Ich habe die SUBCAT() Funktion verwendet, um einen Tag von CURDATE() zu subtrahieren.

SELECT COUNT(*) as `count` 
FROM ad_total_today 
WHERE DATE(date_time) = CURDATE() 
    OR DATE(date_time) = SUBDATE(CURDATE(), 1) 

Alternativ können Sie anstelle von zwei Bedingungen IN verwenden.

SELECT COUNT(*) as `count` 
FROM ad_total_today 
WHERE DATE(date_time) IN (CURDATE(), SUBDATE(CURDATE(), 1)) 

sollten Sie wirklich Anschlag mit MySQL-Funktionen, sie sind alt, veraltet, unsicher und nicht mehr aufrechterhalten. Wechseln Sie zu PDO oder MySQLi - und vergessen Sie nicht, parametrisierte Abfragen mit Platzhaltern zu verwenden, wenn Sie mit Variablen in Ihrer Abfrage arbeiten - nur so können Sie Ihre Daten vor SQL-Injection schützen.

Referenzen und readingmaterial

Verwandte Themen