GuldstrandMedlem sedan juli 20041 274 inlägg
Vilket sätt är "bäst" att använda?
// Alt. 1
$sql = mysql_query('SELECT COUNT(id) AS num_mem FROM users WHERE ADDDATE(added, INTERVAL 1 DAY) > NOW()');
$medlemmar = mysql_result($sql,0);
//Alt. 2
$medlemmar = number_format(get_row_count("users", "WHERE UNIX_TIMESTAMP(" . get_dt_num() . ") - UNIX_TIMESTAMP(added) < 86400"));
function get_dt_num()
{
return gmdate("YmdHis");
}
Båda alternativen visar "fel" antal. :o
Peter SMedlem sedan dec. 20025 484 inlägg
- Vilket resultat får du och vilket resultat förväntade du dig?
- Hur vet du att du får fel antal?
GuldstrandMedlem sedan juli 20041 274 inlägg
Peter S skrev:
- Vilket resultat får du och vilket resultat förväntade du dig?
- Hur vet du att du får fel antal?
Jag får fler resultat än vad som "stämmer".
Verkar som att jag även får resultat för igår. :x
GuldstrandMedlem sedan juli 20041 274 inlägg
// Alt. 1
$sql = mysql_query('SELECT COUNT(id) AS num_mem FROM users WHERE ADDDATE(added, INTERVAL 1 DAY) > NOW()');
$medlemmar = mysql_result($sql,0);
//Alt. 2
$medlemmar = number_format(get_row_count("users", "WHERE UNIX_TIMESTAMP(" . get_dt_num() . ") - UNIX_TIMESTAMP(added) < 86400"));
..ger precis samma resultat, (som är fel).
Peter SMedlem sedan dec. 20025 484 inlägg
Testa att se vad du får med "SELECT NOW(), ADDDATE(added, INTERVAL 1 DAY) FROM users ORDER BY id LIMIT 10". Då ser du om ADDATE() gör vad du tror att den gör.
GuldstrandMedlem sedan juli 20041 274 inlägg
Valde att använda följande kod istället.
$medlemmar = number_format(get_row_count("users", "WHERE UNIX_TIMESTAMP(" . get_dt_num() . ") - UNIX_TIMESTAMP(added) < 86400"));
Verkar fungera nu helt plötsligt. (Gjorde inte det innan.) :o
EDIT: Om jag testar liknande för hur många inlägg som har postats IDAG, så får jag 20 istället för 14 (som är rätt).
$inlagg_dag = number_format(get_row_count("posts", "WHERE UNIX_TIMESTAMP(" . get_dt_num() . ") - UNIX_TIMESTAMP(added) < 86400"));
Ger f*n upp snart. :(
GuldstrandMedlem sedan juli 20041 274 inlägg
Vill alltså endast visa hur många som har reggat sig under dagen IDAG (2009-01-21) fram till nuvarande tid (22:41).
EDIT: Har löst det.
$medlemmar = number_format(get_row_count("users", "WHERE added >= DATE(NOW())"))
;