Autor Zpráva
veteran
Profil *
Zdravím. Práve pracujem na rebríčku pre jeden web a neviem si rady s možno jednoduchou vecou - no prešiel som viacero fór a tutorialov, no nikde som to nenašiel. Problém je, ako zistiť aktuálnu pozíciu pretekára bez toho, aby som ju musel zapisovať a neskôr prepisovať v DB. Chcem, aby ju vyrátalo na základe aktuálneho celkového súčtu bodov.

Vďaka za pomoc.
Joker
Profil
veteran:
Chcem, aby ju vyrátalo na základe aktuálneho celkového súčtu bodov.
V dotazu je málo informací, takže si budu muset domýšlet:
- Je to dělané přes databázi
- Pozice závisí jen na počtu bodů

Čili pak pozice každého je počet těch, kdo mají víc bodů než on, plus 1. Nějak takhle asi:
SELECT (COUNT(*) + 1) AS pozice FROM tabulka WHERE pocetbodu>počet bodů soutěžícího

Dodatek: Předpokládá to, že více soutěžících se stejnými body bude na stejném místě, například:
A: 5 bodů, B: 3 body, C: 3 body, D: 1 bod
bude: 1. A, 2. B, 2. C, 4. D
veteran
Profil *
Ozrejmím to trošku bližšie. Mám dve tabuľky - pretekari a ranking.

V tabuľke pretekari sú polia id, meno, priezvisko, sponzor a ďalšie, ktoré momentálne nie sú podstatné.
V tabuľke ranking sú polia id a pretek1, pretek2, ..., pretek6 a spolu.

Tabuľky sú navzájom prepojené cez polia id.

Ide mi o to, aby sa mi vytvorila tabuľka s aktuálnym poradím nasledovne:
1. MenoPriezvisko Sponzor Súčet bodov
2. MenoPriezvisko Sponzor Súčet bodov
3. MenoPriezvisko Sponzor Súčet bodov
atď.

...prakticky mi ide všetko, len to poradové číslo nie.
Keeehi
Profil
veteran:
Problém je ve špatně navržené druhé tabulece. Ta by měla vypadat nějak takto: id, výsledek závodu, závod (pořadové číslo závodu)
pak se jedná o relaci 1:N.
Joker
Profil
Keeehi:
Problém je ve špatně navržené druhé tabulece.
To se tu řeší každou chvíli. Zkusil jsem rozšířit databázové FAQ o tento a další často řešené problémy.

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