potrebujem z DB vytiahnut naj hodnotene fotky...mam to robene tak ze mam k fotke mam pocet ludi ktori hlasovali(kazdy len raz) a pak znamka od 1-5 ...nenapada ma ako to vytiahnut a zoradit aby to zoradilo podla naj priemeru?hm poradite?
co tak nám nějak lépe popsat strukturu té tabulky / tabulek?
CREATE TABLE `foto` (
`id` int(3) NOT NULL auto_increment,
`foto` varchar(30) NOT NULL default '',
`mail` varchar(30) NOT NULL default '',
`nick` varchar(15) NOT NULL default '',
`cas` varchar(15) NOT NULL default '',
`znamka` varchar(5) NOT NULL default '0',
`ludia` varchar(20) NOT NULL default '0',
`pohlavie` varchar(4) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=11 ;
vlastne je ku kazdej fotke v znamka sucet tych znamok ... a ludia je pocet ludi co hlasovali
aha, no zkusil bych něco takového
select * from foto order by (znamka/ludia) asc limit 0,5
dajak to nejde...snazim sa roznymi upravami ale nic:(
dik uz som to dajak spravil...som netusil ze sa daju aj takto query vykonavat..dik este raz :)
No, nejdříve bych upravil tabulku. Jelikož sloupec známka ma být číslo od 1 do 5, měl by byt typu int(1). (Taktéž sloupec "cas" be asi neměl být varchar, ale pokud s tím nechceš dále pracovat, budiž.)
Předpokládám, že "id" je unikátní číslo fotky. Pak bych to zkusil s nějak takto. Pusť to přes phpMyAdmin a uvidíš výsledek.
SELECT id, (sum(znamka) / count(znamka)) AS prumer FROM foto GROUP BY id ORDER BY prumer
co tak pouzit fci avg()? vtipne to vynechava null a vubec...
Na avg jsem si nevzpomněl, nicméně sloupec "znamka" je NOT NULL.