Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 8 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Vypis poradia uzivatela z MySQL dtb

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268
Bydlisko: Levice
Príspevok NapísalOffline : 11.06.2018 10:18

Mam MySQL databazu, kde maju uzivatelia zaznaceny pocet bodov za urcity den. Jeden uzivatel moze mat viac dni aj viackrat skore za den. Priklad:

ID / datum / name / score
1 1.6.2018 janko@janko.sk 2
2 1.6.2018 janko@janko.sk 5
3 2.6.2018 ferko@ferko.sk 20
4 5.6.2018 janko@janko.sk 1
5 8.6.2018 ferko@ferko.sk 2

Ja potrebujem vediet poradie konkretneho uzivatela, teda ak sa prihlasi do systemu janko, tak ze na ktorom mieste sa umiestnil vzhladom k ostatnym - podla najvyssieho poctu score.

Keby bol kazdy uzivatel v tabulke len raz, tak samozrejme nie je problem to zoradit od najvyssieho skore.

Ale takto treba najprv spocitat vsetky skore pre KAZDEHO uzivatela a nejakym sposobom na zaklade toho zoradit podla poradia, a toto prave neviem ci vobec je mozne.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.04.24
Príspevky: 17930
Témy: 142
Bydlisko: Bratislava
Príspevok NapísalOffline : 11.06.2018 11:38

V subselecte spočítajte body užívateľov cez group by a count, následne z toho správ select najvyššieho skóre







_________________
ITX >>> ATX
Offline

Užívateľ
Užívateľ
Vypis poradia uzivatela z MySQL dtb

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268
Bydlisko: Levice
Príspevok Napísal autor témyOffline : 11.06.2018 14:21

diky Eliote :) no logicky ano, ale neviem ako to skombinovat. Skusal som:

Kód:
SELECT COUNT(*)
FROM(
SELECT score
FROM `tabulka`
WHERE name= 'janko@janko.sk'
)


ale toto mi len zisti pocet riadkov od daneho uzivatela, ja potrebujem spocitat skore pre kazdeho a na zaklade toho to zoradit.

Nasiel som nieco taketo, vecer to otestujem a pretransformujem na moju tabulku. Potreboval som vediet tu funkciu SUM, co vlastne spocita hodnoty.

Kód:
SELECT * FROM (
  SELECT s.*, @rank := @rank + 1 rank FROM (
    SELECT user_id, sum(points) TotalPoints FROM t
    GROUP BY user_id
  ) s, (SELECT @rank := 0) init
  ORDER BY TotalPoints DESC
) r
WHERE user_id = 3


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.04.24
Príspevky: 17930
Témy: 142
Bydlisko: Bratislava
Príspevok NapísalOffline : 12.06.2018 0:44

to co robis, uz si skoro tam ale este nie stale nakonci :)

nieco taketo ti ku kazdemu uzivatelovi priradi poradie medzi ostatnymi (pozri rozdiel medzi rank a dense_rank, ktore z toho ti bude vyhodnejsie a lepsie pouzit):
Kód:
SELECT name, rank() OVER(ORDER BY points DESC)
FROM
(
   SELECT name, SUM(*) AS points
   FROM table
   GROUP BY name
)







_________________
ITX >>> ATX
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 12.06.2018 10:29

To ako vážne subquery?

Kód:
select email, sum(points) as p
from table
group by email
order by p desc







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.04.24
Príspevky: 17930
Témy: 142
Bydlisko: Bratislava
Príspevok NapísalOffline : 12.06.2018 10:34

som predpokladal ze chce mat v tabulke aj stlpec s poradovym cislom kde sa dany pouzivatel nachadza :)







_________________
ITX >>> ATX
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 12.06.2018 10:37

Poradové číslo netreba, ak stačí vedieť moje konkrétne poradie. Na jedno query si vytiahnem môj počet bodov (ten sa predpokladám niekde cachuje, nech sa nemusí stále počítať nanovo)
a potom stačí

Kód:
select email, sum(points) as p
from table
group by email
having sum(points) > 200

kde 200 je môj počet bodov. Počet riadkov, ktoré vráti tento select, je počet užívateľov, ktorí majú viac bodov než ja.

Typicky sa potom leaderboardy robia tak, že na jeden select vytiahnem prvú desiatku (tie viem očíslovať aj v php) a v druhom selecte moje poradové číslo. Zbytočne budem ťahať všetkých užívateľov, keď ma zaujíma jeden, alebo 10.
A ak chcem očíslovať všetkých, tak to viem tiež robiť až pri zobrazení, zbytočne si tým nemusím spomalovať select.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.06.14
Prihlásený: 25.04.24
Príspevky: 17930
Témy: 142
Bydlisko: Bratislava
Príspevok NapísalOffline : 12.06.2018 10:53

tak zase nieco nove pre mna :) vdaka za objasnenie







_________________
ITX >>> ATX
Odpovedať na tému [ Príspevkov: 8 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. vypis z dtb - 2 moznosti

v PHP, ASP

2

475

27.09.2016 10:37

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL vypis

v Databázy

1

313

07.01.2014 15:34

kudzo3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. výpis z mysql

v PHP, ASP

13

1207

09.12.2009 19:40

M1rcO_o Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MYSQL vypis podmienky

v Databázy

6

788

07.09.2010 20:15

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vypis poctu z MySQL

v PHP, ASP

11

647

30.01.2009 12:39

jtomcik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výpis údajov z mysql tabuľky

v PHP, ASP

29

1571

05.12.2008 9:44

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výpis podľa stĺpca z MySQL

v PHP, ASP

6

397

04.11.2012 21:14

xxx9955 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vypis hlavicky mysql v php

v PHP, ASP

2

416

25.04.2010 9:11

Bauglir Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vypis s mysql tabulky na stranku

v PHP, ASP

5

792

11.01.2009 15:16

dadmtb Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vypis mysql DB - nevidim v skripte chybu

v PHP, ASP

3

564

02.12.2007 23:17

miro277 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vypis z MySQL a spracovanie php scriptu v tabulke

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

39

2604

21.03.2010 1:22

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL výpis "embed" kódu

v PHP, ASP

2

459

20.05.2010 15:16

MAREJ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. optimalizacia vypisu z dtb

v PHP, ASP

12

664

21.09.2009 23:08

kmsa Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nahodny vyber z dtb

v Databázy

5

727

01.06.2009 12:02

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. porovnanie veku v dtb

v Databázy

0

286

26.09.2014 14:18

neopagan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmena poradia(cisla)

v PHP, ASP

7

581

15.08.2008 18:10

Blackdevil Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra