Ranking (Positie zoeken binnen de resultaten)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sara Z

Sara Z

16/11/2011 18:04:19
Quote Anchor link
Goede avond,

Ik ben bezig met een project en ik wil de positie (Ranking) van een speler hebben.

Mijn tabel: spelers_tabel (speler_naam - speler_punten)

Pim = 10
Karel = 5
Tom = 25
Dany = 7

Ik wil de positie van Dany hebben. Het resultaat is: Dany (3), betekent de derde plaats.

Alvast bedankt,
SZ
Gewijzigd op 16/11/2011 20:10:41 door Sara Z
 
PHP hulp

PHP hulp

22/11/2024 07:45:06
 
Noppes Homeland

Noppes Homeland

16/11/2011 18:09:21
Quote Anchor link
Haal dat hulp nodig maar weg, dat heeft een ieder die hier een topic opent!

Wat heb je zelf kunnen bedenken.
 
Jeroen VD

Jeroen VD

16/11/2011 18:33:40
Quote Anchor link
SELECT * FROM spelers_tabel ORDER BY speler_punten DESC

vervolgens een loopje in php met derde keer = derde speler
Gewijzigd op 16/11/2011 19:27:12 door Jeroen VD
 
Noppes Homeland

Noppes Homeland

16/11/2011 19:08:29
Quote Anchor link
uiteraard los je dit in het geheel op met 1 sql statement, of in sommige gevallen 2 - mysql -

m.a.w. je hoeft de plaatsbepaling niet binnen php uit te vogelen
 
Eddy B

Eddy B

16/11/2011 19:22:28
Quote Anchor link
Wil je even je titel veranderen, verzin een korte zin die het probleem beschrijft.
 
Jeroen VD

Jeroen VD

16/11/2011 19:26:09
Quote Anchor link
Noppes Homeland op 16/11/2011 19:08:29:
uiteraard los je dit in het geheel op met 1 sql statement, of in sommige gevallen 2 - mysql -

m.a.w. je hoeft de plaatsbepaling niet binnen php uit te vogelen


hoe kan je dan de hele tabel die je als resultaat krijgt de derde bepalen in een query?
 
Dos Moonen

Dos Moonen

16/11/2011 20:01:00
Quote Anchor link
ORDER BY speler_punten DESC OFFSET 2 LIMIT 1
 
Sara Z

Sara Z

16/11/2011 20:21:17
Quote Anchor link
Hey mannen, bedankt voor de reacties.

Ik ben niet opzoek naar de derde, maar naar de positie van Dany.
Hij kan vandaag de derde zijn, maar morgen misschien de 10de.

Ik wil een query die zoekt binnen de resultaten van (SELECT * FROM spelers_tabel ORDER BY speler_punten DESC) naar de positie van de speler Dany.

Alvast bedankt,
SZ
 
Bart V B

Bart V B

17/11/2011 00:12:00
Quote Anchor link
zoiets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT spelers.id,
 spelers.speler_naam,
 spelers.speler_punten,
 @row := (@row + 1) AS rank
 FROM spelers,
 (
 SELECT @row := 0
 ) AS counter
 ORDER BY spelers.speler_punten DESC


resultaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
id speler_naam speler_punten rank

3     Tom       25             1

1     Pim       10             2

4     Danny      7             3

2     Karel      5             4
Gewijzigd op 17/11/2011 00:24:48 door Bart V B
 
Sara Z

Sara Z

26/11/2011 11:31:56
Quote Anchor link
Bedankt Bart,

Ik ben een tijdje weggeweest. Ik zal hem straks testen.
Groetjes,
SZ
 
Jacco Brandt

Jacco Brandt

26/11/2011 11:52:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
     COUNT(id)
FROM
     spelers
WHERE
     speler_punten >
     (
            SELECT
                  speler_punten
            FROM
                  spelers
            WHERE
                  id=ID VAN DANNY
     )


Hier moet volgens mij een +1 bij op, maar dat moet je maar even bekijken.
Gewijzigd op 26/11/2011 11:54:01 door Jacco Brandt
 
Sara Z

Sara Z

26/11/2011 12:21:28
Quote Anchor link
Bedankt Jacco,

Ik test hem zometeen.

Ik heb nog een moeilijke vraag:
Stel voor dat de punten niet is de database staan.
De punten worden apart (Buiten de database) berekend.

Ik denk nu aan (temporary table), maar ik weet niet hoe.
Dus de query gaat zoeken in het tijdelijk tabel (Waar de leden en de punten staan) naar de positie van DANNY.

Wat zijn de mogelijkheden?
Alvast bedankt,
SZ
 
Jacco Brandt

Jacco Brandt

26/11/2011 13:04:25
Quote Anchor link
Als de punten buiten de database worden berekend, dan kun je daar toch gelijk de positie bij berekenen?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

26/11/2011 13:34:31
Quote Anchor link
S Z op 26/11/2011 12:21:28:
Ik heb nog een moeilijke vraag:
Stel voor dat de punten niet is de database staan.
De punten worden apart (Buiten de database) berekend.

Aan de hand waarvan worden de punten berekend, is het niet handiger om een kolom punten aan de spelers tabel toe te voegen?
 
Sara Z

Sara Z

26/11/2011 13:41:43
Quote Anchor link
Dat heb ik aangedacht, maar de punten zijn afhakelijk van (De punten) van een andere tabel (Activiteiten).
Bijvoorbeeld:
DANNY heeft 7 (5 voor Voetbal en 2 voor basketbal)
Voetbal en Basketbal zijn van het tabel (Activiteiten).

Dus als de punt van (Danny voetbal) is veranderd, dan worden zijn punten autamatisch gewijzigd.
Dus een andere kolom is geen optie op dit moment.
Gewijzigd op 26/11/2011 13:43:43 door Sara Z
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

26/11/2011 13:56:07
Quote Anchor link
Kan je nog in één query doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT t1.name as Name, (t2.punten + t3.punten) AS total, @row := @row+1 AS rank
FROM tabel1 AS t1, (SELECT @row := 0)
JOIN tabel2 AS t2 USING id
JOIN tabel3 AS t3 USING id
ORDER BY total DESC
 
Sara Z

Sara Z

26/11/2011 14:02:07
Quote Anchor link
Wij zijn er bijna, want ik gebruik bijna dezelfde query (Zonder (SELECT @row := 0)) om een lijst te krijgen van alle leden en hun punten.
NB: Ik gebruik JOIN LEFT in plaats van JOIN

Ik zal hem testen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.