Autor Zpráva
Patrick01
Profil *
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 *
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
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 *
DJ Miky:
oh, jasně! Díky!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0