Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:07 Der er 17 kommentarer og
1 løsning

Rank

I en database har jeg 100 links. De har hver fået et antal hits.

Nu vil jeg sortere linksne efter antal hits.

Nu vil jeg fx udskrive hvad plads link med id 64 har. Altså hvad plads i rækken af links det har, når de er sorteret efter hvem der har flest hits.

Hvordan gør jeg det?
Avatar billede the-webghost Nybegynder
21. april 2003 - 17:14 #1
Hej med dig!

Tænker du på denne kode:
$row = mysql_query("SELECT * FROM links order by id DESC");

Den skulle virke!
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:16 #2
Nej ikke helt.

Den skal udskrive hvad plads link med id 64 ligger på. Plads forstået hvem hvor i rækken den ligger når alle 100 links er sorteret efter antal hits.
Avatar billede jakoba Nybegynder
21. april 2003 - 17:31 #3
$row = mysql_query("SELECT * FROM links order by id DESC LIMIT 64,1");

så er det kun nr 64 i listen du får
Avatar billede jakoba Nybegynder
21. april 2003 - 17:32 #4
Ups, nej. der tælles fra 0 så det skal være:
$row = mysql_query("SELECT * FROM links order by id DESC LIMIT 63,1");

den anden giver nr 65
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:36 #5
tak jakoba, giv mig et svar så du kan få nogle point.
Avatar billede Slettet bruger
21. april 2003 - 17:42 #6
$sql = "SELECT (count( * )+1)
FROM links one, links two
where two.id = 64 AND one.value > two.value ";
$result = mysql_query($sql);
$rank = mysql_result($result,0);
Så får du den plads id=64 har når det er sorteret efter hits!

f.eks. 35 hvis der 35 poster som har flere hits end id=64
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:43 #7
et spørgsmål mere. Hvordan udskriver jeg så hvad plads den ligger på. Hvis nu det er siden med tredje flest besøgende, skulle den gerne udskrive et 3-tal.
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:46 #8
det lyder rigtigt regin, men hvad er links one og links two?
Avatar billede Slettet bruger
21. april 2003 - 17:46 #9
links one er et alias for tabellen links
links two er det samme
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:47 #10
men hvorfor skulle det være to forskellige tabeller?
Avatar billede Slettet bruger
21. april 2003 - 17:48 #11
Det er du nød til for at kunne lave den sammenligning!
Avatar billede Slettet bruger
21. april 2003 - 17:51 #12
En lille rettelse:
$sql = "SELECT count( * )
FROM links one, links two
where two.id = 64 AND one.value >= two.value ";
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 17:51 #13
Men alle informationer stå i en tabel, der hedder links. Her har vær række et id og et antal hits.

Undskyld det er muligt det er mig der er dum, men så er der vel ikke brug for mere end en tabel.

Gider du prøve at omskrive din kode så den passer til min tabel?
Avatar billede jakoba Nybegynder
21. april 2003 - 17:56 #14
Det må blive regins points. jeg svarede på noget andet end det du spørger om
(og jeg har aldrig set den løsning før. takker)
Avatar billede Slettet bruger
21. april 2003 - 17:56 #15
Ok det jeg gør er følgende:
Først findes antal af hits til id=64 .... kun i princippet have været et seperat sql-kald.
Der næst finder jeg antallet af poster som har flere hits end eller lige så mange hits som id=64

Ved at bruge to aliaser til samme tabel sparer jeg et sql-kald:

Så skulle det passe til dit behov:
$sql = "SELECT count( * )
FROM links one, links two
where two.id = 64 AND one.hits >= two.hits ";
Avatar billede hairboy1234 Nybegynder
21. april 2003 - 18:07 #16
Det virker glimrende, havde først samlet det overstående til en linie, hvilket den ikke synes om. Skrev det derefter som dig og det virker.

Fyr mig et svar og du får smidt nogle point i hovedet!

Tak for hjælpen!
Avatar billede Slettet bruger
21. april 2003 - 18:09 #17
Anytime...
Avatar billede Slettet bruger
21. april 2003 - 18:10 #18
jakoba>>Det var så lidt... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester