[mySQL] rijnummer van iets binnen een selectie weergeven

Pagina: 1
Acties:
  • 47 views sinds 30-01-2008

  • Zynth
  • Registratie: September 2001
  • Laatst online: 20-05 19:47
Ik ben bezig met mySQL en PHP om een uitslagendatabaseje te maken.
hierin staan een aantal gebruikers met hun punten:
code:
1
2
3
4
5
6
users   |  points

blaat1  |   4
blaat2  |   5
blaat3  |   6
blaat4  |   7

Normaal vraag ik zo een scorelijst op:
SELECT * FROM tabel ORDER BY points DESC

Maar nu wil ik niet de hele scorelijst weten
(welke uit enkele duizenden entries gaat bestaan),
maar op welke plek een gebruiker staat.
Bestaat er zoiets als:
SELECT rownummer(users='blaat2') FROM tabel ORDER BY points DESC
die dan in dit geval 3 returned?
een andere oplossing hieromtrent is uiteraard meer dan welkom :)

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Als je de punten al hebt opgehaald levert dit de positie op de ranglijst op:

SELECT count(*) + 1 FROM tabel WHERE points < [6]

Die [6] voeg je adhv je vorige query natuurlijk zelf in. Het is wel vrij omslachtig, je moet 'm niet een paar honderd keer per pagina gaan doen. Maar dat was je geloof ik toch al niet van plan :)

[ Voor 12% gewijzigd door Rataplan op 08-01-2004 17:18 . Reden: order by natuurlijk niet nodig :) ]


Journalism is printing what someone else does not want printed; everything else is public relations.


  • BrZ
  • Registratie: Maart 2000
  • Laatst online: 27-05 08:35

BrZ

SET @t1=0;
SELECT @t1:=(@t1+1) AS rownumber, users, points FROM tabel ORDER BY points DESC

Dat werkt iig, maar natuurlijk niet icm met een WHERE, dus je moet zelf met PHP de goede gebruiker er uit vissen... Of je hier nou echt blij mee moet zijn :+

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Tsja, dit is toch echt gewoon basic SQL hoor, wat je hier vraagt.

Even een korte en onvolledige intro, en verder moet je het maar doen met tutorials en referencemateriaal op het internet:

code:
1
2
3
4
5
6
7
8
SELECT
   velden
FROM
   tabellen
WHERE
   condities
ORDER BY
   veld [, veld[,veld....]]


In het onderdeel 'condities' (ook wel de WHERE-clause genoemd) kun je condities vastleggen waaraan de records moeten voldoen (anders gezegd: de expressie die in de where clause staat moet voor elk record 'true' evalueren, anders wordt dat record niet meegenomen in de resultset)

kortom:
SELECT piet FROM koos WHERE user='blaat169';
of
SELECT piet FROM koos WHERE score = 3 LIMIT 0,25;

Verder veel suc6 op www.mysql.com/doc en google :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Dit topic is gesloten.