Autor | Zpráva | ||
---|---|---|---|
Patrick01 Profil * |
#1 · Zasláno: 10. 8. 2012, 19:37:25
Ahoj zkouším vybrat počet článků za jeden den.
Mám tenhle dotaz a vyjede mi nějaké číslo, ale neodpovídá to realitě. $dotaz = mysql_query("SELECT ID FROM table WHERE `created`<= DATE_SUB(CURDATE(), INTERVAL 1 DAY) ORDER BY `id` DESC LIMIT 1"); příčemž v tabulce to mám v datu 2012-08-10 18:12:58
Zkouším vše možné i nemožné. `created` = CURDATE() neebo vytvořit novou funkci, která mi vrátí datum přes strtotime mktimme, už mi to leze na mozek, Můžete mi prosím poradit?
|
||
DJ Miky Profil |
Dotaz, který jsi poslal, vybere počet všech článků kromě těch, které byly poslány během posledních 24 hodin. Otočení operátoru <= na >= by vybralo počet článků během posledních 24 hodin.
Výběr článků během dnešního dne (= od dnešní půlnoci) můžeš udělat např. podmínkou WHERE created >= CURDATE() nebo čas sestrojit pomocí PHP: " ... WHERE created >= '" . date('Y-m-d') . " 00:00:00' ..."
EDIT: Dotazy výše vyberou počet článků ode dneška, takže pokud máš v databázi i články "z budoucnosti", které teprve vyjdou, pak by bylo potřeba upravit podmínku např. na WHERE DATE(created) = CURDATE() , což je také významově přesnější.
|
||
Patrick01 Profil * |
#3 · Zasláno: 10. 8. 2012, 20:14:17
Když otočím operátor tak my to vrátí všechny články. :/
WHERE created >= CURDATE() - taky vrátí všechno. :( Pomocí php my to háže error DATE(created) = CURDATE() - My vrátí všechny články
|
||
DJ Miky Profil |
#4 · Zasláno: 10. 8. 2012, 22:18:46
Ty totiž v dotazu nevybíráš počet, ale ID posledního, proto to vypadá jako všechny články.
SELECT COUNT(*) FROM ... |
||
Patrick01 Profil * |
#5 · Zasláno: 10. 8. 2012, 22:22:06
DJ Miky:
oh, jasně! Díky! |
||
Časová prodleva: 12 let
|
0