Autor Zpráva
hyXyh
Profil *
Zdravím,
robím na jednej ankete, ale mám trochu problém s tým, že by som potreboval vybrať z mysql odpovede na otázku s počtom hlasov, vyjadrených v percentách. A zároveň by som potreboval získať aj najvyššie percento ktoré sa nachádza pri odpovedi.

Bol som v tom, že toto by mohlo fungovať:

$hlasov = mysql_result(mysql_query("SELECT SUM(`hlasov`) FROM `ankety_odpovede` WHERE `id` = '".$row['id']."'"), 0);

$reso = mysql_query("SELECT *, ".($hlasov != 0 ? "(`hlasov`/".$hlasov.")*100" : "0")." AS `p`, MAX(`p`) AS `max_p` FROM `ankety_odpovede` WHERE `id` = '".$row['id']."'");


... lenže problém je s tým MAX(`p`). Tam mi hlási chybu pri mysql_error. Nevedel by niekto možno aj elegantnejšie riešenie ako na to?

Vďaka.
Kajman_
Profil *
Co si to maximum spočítat s tím součtem?

SELECT SUM(`hlasov`) soucet, max(`hlasov`) maximum FROM `ankety_odpovede` WHERE `id` = '$row[id]'
ninja
Profil
hyXyh: kdyz chces pouzivat agregacni funkce (SUM, MAX, atd), musis nejdrive radky seskupit, tedy pouzit GROUP BY.
Kajman_
Profil *
ninja
Ale houbelec. Když chce ty agregační funkce použít na všechny řádky dané podmínkou, tak žádné group by není třeba a může to mít, tak jak to má v tom prvním dotazu.
ninja
Profil
Kajman_: Mas pravdu, nevedel jsme ze to i takto funguje.

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: