Toon posts:

[SQL/ASP] Ranking weergeven

Pagina: 1
Acties:
  • 158 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ben bezig met een soort forum waar gebruikers kunnen inloggen en berichten kunnen achterlaten.
Ook kan men op bestaande berichten reageren.
(ik weet dat hier hier mooie bestaande programma's voor zijn, ik ben echter zo een idioot die alles zelf wil maken)
Nu heb ik een statistieken pagina gemaakt waar men kan zien hoeveel berichten, reacties en hoevaak men is ingelogd kan zien.
Nu wil ik ook een ranking maken.
Hiervoor moet dus de fysieke plek in de tabel weten.
Bijvoorbeeld de tabel ziet er zo uit:
naam - aantal berichten
pietje - 3
jantje - 5
klaas - 2
henk - 1

Nu kan ik met een order by in mijn query op volgorde laten weergeven dus:
jantje - 5
pietje - 3
klaas - 2
henk - 1

Wat ik nu wil bereiken is dat ik uit een query of stukje ASP code de plek in de tabel krijg
dus
jantje - 1
pietje - 2
klaas - 3
henk - 4

Wat is de meest effectieve manier?

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 27-11 14:05

giMoz

iets met meester...

je kan toch gewoon tijdens het loopen door de resultset in asp een tellertje bijhouden? van 1 tot zoveel je er hebt en die gewoon op het scherm tonen???

Of niet natuurlijk...


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Je kan dit het allermakkelijkste door je presentatie laag (dus je ASP) laten regelen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
giMoz schreef op maandag 29 januari 2007 @ 16:22:
je kan toch gewoon tijdens het loopen door de resultset in asp een tellertje bijhouden? van 1 tot zoveel je er hebt en die gewoon op het scherm tonen???
Das inderdaad een goed plan, omdat ik het probeerde via een query te doen heb ik jou oplossing over het hoofd gezien.
dank je wel

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 27-11 14:05

giMoz

iets met meester...

soms is de oplossing zo heerlijk simpel :)

Of niet natuurlijk...


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

SQL Server 2005 biedt ook mogelijkheden hiervoor, mocht je paging of ranking oid willen gebruiken :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
gorgi_19 schreef op maandag 29 januari 2007 @ 20:37:
SQL Server 2005 biedt ook mogelijkheden hiervoor, mocht je paging of ranking oid willen gebruiken :)
Je kunt dan natuurlijk ook meteen even verklappen wat die mogelijkheden dan wel zijn ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
De database is een access database.
Ranking via SQL gaat dus niet lukken.

Ga een loopje inzetten.

  • bastv
  • Registratie: September 2005
  • Laatst online: 24-11 20:50
zoiets niet makkelijk ?
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DIM rank

RS.Open "SELECT naam,aantal_berichten FROM tabel ORDER BY aantal_berichten", DB

rank = 1

do until RS.EOF
%> 

<%=RS.Fields("naam")%> rank= <%=rank%><br>

<%
rank = rank + 1
RS.Movenext
loop

RS.Close

[ Voor 72% gewijzigd door bastv op 30-01-2007 10:51 ]


  • __fred__
  • Registratie: November 2001
  • Laatst online: 29-11 20:34
SELECT b1.naam, (SELECT COUNT( DISTINCT aantalberichten) FROM berichten b2 WHERE b2.aantalberichten >= b1.aantalberichten)
FROM berichten b1
ORDER BY b1.aantalberichten DESC

Wel even aantalberichten indexeren.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

bastv schreef op dinsdag 30 januari 2007 @ 09:55:
zoiets niet makkelijk ?
ASP:
1
...
Dat wordt toch al gezegd?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
code:
1
2
3
4
5
De tabel met berichten ziet er als volgt uit:
Id   Postdatum   Posttijd   Poster   Rubriek        Bericht
1    12-12-2000   18:00      Jan       algemeen     blaat
2    12-12-2000   18:50      Jan       algemeen     blaat2
3    13-12-2000   19:40      Jan       geld             blaat3


Daarnaast heb ik ook een tabel met reacties op de berichten:
code:
1
2
Id   PostId  Postdatum   Posttijd   Poster        Reply
1    1          14-12-2004   19:20      Klaas         blaat is niet waar

Bij de uitvoer koppel ik dus de replies met PostId aan de berichten.

Ik heb dus geen tabel die het aantal berichten per poster heeft.

Wat ik nu moet hebben is een ranking met de rank / totaal aantal mensen welke geregistreerd staan.

Het totaal aantal mensen in de tabel is geen probleem. Wat mij nog niet lukt is een query/stukje code te maken wat de rank teruggeeft met bovenstaande tabellen.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Dus je wil per "poster" een postcount hebben? En deze nog eens gesorteerd?
SQL:
1
select count(bericht) as numPosts from berichten where poster = "jantje"

Zoiets? Als je (weet niet of Access dit ook vreet) dit nu in je bestaande query middels een subquery combineert ben je al een heel eind.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • bastv
  • Registratie: September 2005
  • Laatst online: 24-11 20:50
SQL:
1
2
3
SELECT count(*) as numPosts
FROM berichten INNER JOIN reacties ON berichten.id = reacties.bericht_id
WHERE berichten.poster="henk" AND reacties.poster="henk"

[ Voor 20% gewijzigd door bastv op 30-01-2007 13:26 ]


Verwijderd

Topicstarter
De volgende query heb ik toegepast:
code:
1
2
3
4
Testquery = "SELECT count(*) as numPosts FROM Posten INNER JOIN PostReply ON Posten.id = PostReply.Post_Id WHERE Posten.Poster='"&Poster&"' AND PostReply.Poster='"&Poster&"'"
    Set RsTestQuery = Conn.Execute(Testquery)
    AantalBerichten = RsTestQuery("numPosts")
    Response.Write AantalBerichten


Wat is terug krijg (AantalBerichten) is altijd 0.

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Waarom een AND en geen OR in dit geval?

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1