Zadejte hledaný výraz...

Jak na DISTINCT ON ?

tazzys
verified
rating uzivatele
(10 hodnocení)
27. 10. 2012 22:16:02
Dobrý den, mam tabulku na výpočet hvězd ze zápasu nhl kde 1. hvězda ma 3 body, 2. hvězda 2 body a 3.hvězda 1 bod. Nejdřív to počíta počet jednotlivých hvězd a poté počítá sloupec body.
Jenže mě to počítá špatně. Hledal sem po netu a našel sem funkci distinct on jenže nevím jak ji importovat do tohoto scriptu, pomůže někdo ?
$dotaz=mysql_query("SELECT
p.jmeno,
p.id,
p.tym,
p.pozice,
count(h1.hvezda1) as hvezda1,
count(h2.hvezda2) as hvezda2,
count(h3.hvezda3) as hvezda3,
(count(h1.hvezda1)*3)+(count(h2.hvezda2)*2)+(count(h3.hvezda3)*1) as body
from system_players p
left join system_zapasy h1
on (p.id = h1.hvezda1 and h1.schvaleno = 'ano' and h1.cup = 'ne')
left join system_zapasy h2
on (p.id = h2.hvezda2 and h2.schvaleno = 'ano' and h2.cup = 'ne')
left join system_zapasy h3
on (p.id = h3.hvezda3 and h3.schvaleno = 'ano' and h3.cup = 'ne')
group by h1.hvezda1 desc, h2.hvezda2 desc, h3.hvezda3 desc order by body desc limit 0,20") or die(mysql_error());
$i=1;
while($row=mysql_fetch_assoc($dotaz)){
echo "";
echo"";
}
?>
PořadíJménoTýmPozice1.Hvězdou2.Hvězdou3.HvězdouBodů
".$i++.".".$row."".$row."".$row."".$row."x".$row."x".$row."x".$row."
27. 10. 2012 22:16:02
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824913
Riedl
verified
rating uzivatele
27. 10. 2012 22:57:45
SELECT DISTINCT p.id, p.jmeno.... ale nejsem si jistý že to bude dělat přesně to co chceš :)
27. 10. 2012 22:57:45
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824912
tazzys
verified
rating uzivatele
(10 hodnocení)
28. 10. 2012 01:10:01
ne to nefunguje bohužel
28. 10. 2012 01:10:01
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824911
hm
verified
rating uzivatele
(20 hodnocení)
28. 10. 2012 01:51:19
jak vypada tabulka, co presne chces udelat a co znamena "pocita me to spatne" ?
28. 10. 2012 01:51:19
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824910
tazzys
verified
rating uzivatele
(10 hodnocení)
28. 10. 2012 03:07:16
tabulka v mysql vypadá tak, že se odešle zápas a tam jsou i tři sloupce, hvezda1, hvezda2, hvezda3, v techto sloupcich jsou pouze id hracu, kteri jsou vsichni v tabulce system_players, z tama se berou udaje jako jmeno pozice tym, v tabulce to ma sečitat kolikrat to id bylo hvězdou 1, hvězdou 2 a hvězdou 3. A následně vypočítat body, za hvězdu 1. jsou 3 body, za hvězdu 2 jsou 2 body a za hvězdu 3 je jeden bod. Počítá to špatně v tom smyslu, že když je hrač 1, první hvězdou a 2x třeba třetí, v tabulce je že je 2x 1.hvězdou a 2krát 3.hvězdou, prostě vždy dva sloupce jsou si stejné, nevím proč, ale asi to bude tim distinct.
TU je jak to vypada http://nhl.tvplay.cz/mvp.php
---------- Příspěvek doplněn 28.10.2012 v 17:14 ----------
fakt nikdo neví ?
28. 10. 2012 03:07:16
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824909
Riedl
verified
rating uzivatele
28. 10. 2012 20:30:03
co kdybys nam udelal export tabulek do sql souboru a rekl, co ma vyjit? btw. zjevne je problem v tom, ze DISTINCT dela neco jineho, nez si myslis...
28. 10. 2012 20:30:03
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824908
vsak to vypada ze ti to tam funguje ne?
28. 10. 2012 21:14:14
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824907
vlnk
verified
rating uzivatele
(4 hodnocení)
30. 10. 2012 14:38:44
$dotaz=mysql_query("SELECT p.jmeno,p.id, p.tym,p.pozice,
@b1:= (select count(1) from system_zapasy where hvezda1=p.id and schvaleno = 'ano' and cup = 'ne')as hvezda1,
@b2:= (select count(1) from system_zapasy where hvezda2=p.id and schvaleno = 'ano' and cup = 'ne')as hvezda2,
@b3:= (select count(1) from system_zapasy where hvezda3=p.id and schvaleno = 'ano' and cup = 'ne')as hvezda3,
3 * @b1 + 2 * @b2 + @b3 as body
from system_players p
order by body desc limit 0,20") or die(mysql_error());
30. 10. 2012 14:38:44
https://webtrh.cz/diskuse/jak-na-distinct-on#reply824906
Pro odpověď se přihlašte.
Přihlásit