Autor Zpráva
Dave123
Profil *
Ahoj, chtěl bych se zeptat jestli jde toto

mám uložené v databázi data navštívení webu v datetime tedy "2010-05-08 14:22:00" a je jich tam několik, a zajímalo by mě jestli jde pomocí čtení rovnou zjistit kolik bylo celekm návštev v 14 hodin (tedy všechny dny ve 14 hodin). Což nvm přesně jak by vypadala podmínka

$sql = "SELECT * FROM navstavy WHERE datetime = ??;";


a taky jestli jde rovnou vytáhnout všechny hodiny, jakože mi mysql vyhodí 24 hodnot, tedy počet kolik má každá hodina. Ale jen přes SELECT
vim že by to šlo pomocí podmínek, a více cyklu ale spíš mě zajíma jestli nato už není přímo nějaká php(mysql) funkce.
Děkuji, doufám že jste mě pochopili.
Shulík
Profil
SELECT HOUR(TIME(datetime)) as hodina, COUNT(HOUR(TIME(datetime))) as pocet FROM navstevy WHERE HOUR(TIME(datetime)) = 14;

Pro počet záznamů ze 14 hodin.

//EDIT: Co je výhodnější? Použít WHERE HOUR.. jako v kódu nebo HAVING hodina? Četl jsem, že HAVING je pomalé..
//EDIT2: Zapomněl jsem FROM
Dave123
Profil *
Shulík:
mno takle přečtu jednu, tim jsem vyřešil problem 1 ale jdou přečíst všech 24 bez toho abych to četl 24x?
Dave123
Profil *
Dave123:
jakože mi se cyklus provede 24x

$sql = "SELECT HOUR(TIME(datetime)) as hodina, COUNT(HOUR(TIME(datetime))) as pocet FROM navstevnost;";
				$vysledek = MySQL_DB_Query(SQL_USERNAME, $sql);

				while($zaznam = MySQL_Fetch_Array($vysledek)):
					
					echo $zaznam["hodina"]." ".$zaznam["pocet"];
			
				endwhile; 
Shulík
Profil
Ne, i to jde jedním dotazem.
Ale ten z hlavy nedám a kde mám knížku, to fakt nevim. Zkusim Ti to najít.

//EDIT: Mrkni se na SELECT DISTINCT respektive GROUP BY. To by myslím mohlo být ono.
Dave123
Profil *
Shulík:
ok diky, použil jsem to takto
SELECT HOUR(TIME(datetime)) as day, COUNT(HOUR(TIME(datetime))) as pocet FROM navstevnost GROUP BY HOUR(TIME(datetime))

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