Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 3.171 pregleda

Najnovija ↓

postoji li nesto ovakvo 19.12.2005. u 17:06 · pre 254 meseca #1
Radim neku scriptu za top listu, i sve radi, ali sada zelim nesto malo dalje da idem
Ono sto hocu je da u tabeli koju imam npr
+--------+-----------+
| sajtid | brklikova |
+--------+-----------+
| 3 | 50 |
| 4 | 49 |
| 8 | 39 |
| 15 | 33 |
| 6 | 31 |
| 7 | 9 |
| 14 | 9 |
| 16 | 9 |
| 1 | 8 |
| 9 | 8 |
| 10 | 5 |
| 11 | 4 |
| 5 | 0 |
| 12 | 0 |
| 13 | 0 |
+--------+-----------+
dodam jos jednu kolonu sa rednim brojem, koji bi bio fiksan tako da od pocetka tabele postoje indexi u toj koloni, tako da bi na trecem mestu bio sajtid 8 a na 4-tom sajtid 15. Ukoliko ovaj sa sajtid-om 15 pretekne ostale on bude u vrhu i nosi vrednost 1.
Ono sto ja hocu je da tu kolonu koja bi se zvala npr broj koristim kao uslov. Znaci kazem "select * from tabela where broj=4" i tako dobijem sajt na 4-tom mestu

Ima li sanse nesto ovakvo da se odradi?
Potpis
www.autopijac.com
www.linkovi.info
www.privrednivodic.com
www.tuhaj.com
Re: postoji li nesto ovakvo 20.12.2005. u 07:56 · pre 254 meseca #2
Ako sam dobro shvatio hoces da ti se tabela sama sortira (menja fizicki raspored polja u tabeli). To ne moze tako da se uradi, ali mozes na primer da definises pogled iz te tabele sortiran po koloni 'brlinkova'.

A sto se tice ispisa po broju prvo sto mi pada na pamet je da napises storovanu proceduru koja kao parametar prima mesto koje zelis da vidis pa preko kusora prikazes redni broj zapisa koji te zanima (FETCH ABSOLUTE @Mesto)...
Potpis
Every hamster has his day.
Re: postoji li nesto ovakvo 20.12.2005. u 09:43 · pre 254 meseca #3
Da li se pitanje zaista odnosi na MSSQL, pošto vidim da si ga postavio i u forumu za MySQL. Rešenje u ove dve baze se dosta razlikuje...

U MSSQLu, mislim da se najčešće rešava korišćenjem temp tabele sa identity (autoincrement) poljem u koju se prebacuju ključevi iz osnovne tabele po željenom redosledu (u tvom slučaju opadajuće po broju klikova).

Kad imaš tu temp tabelu, jednostavno pokupiš slog sa ključem koji ti treba.

Ako je u pitanju prvi slog, ili prvih nekoliko slogova, zaboravi sve gorenavedeno i koristi TOP.
Re: postoji li nesto ovakvo 28.12.2005. u 16:32 · pre 253 meseca #4

Predpostavimo da imas Tabelu koja se bas tako zove, tj Tabela, i da u njoj imas sledece kolone i podatke :

id klik
---------------
1 8
4 49
5 0
6 31
7 9
8 39
9 8
10 5
11 4
12 0
13 0
14 9
15 52
16 9
---------------

Ukoliko je relativno mala tabela ( ispod 10 000 slogova), mozes slobodno koristiti sledeci query :

Code:

SELECT id, klik,
(select count(id) + 1  from tabela tmp where  tmp.klik > t.klik ) AS rang
FROM tabela AS t
ORDER BY klik DESC;


Rezultat :

id klik rang
---------------------
15 52 1
4 49 2
8 39 3
6 31 4
16 9 5
14 9 5
7 9 5
9 8 8
1 8 8
10 5 10
11 4 11
13 0 12
12 0 12
5 0 12
------------------------

Dalje, mozes pretvoriti ceo query u jednu virtuelnu tabelu, a zatim izdvajati samo one
slogove koji su ti potrebni.

Code:

SELECT * FROM 
( SELECT id, klik,
(select count(id) + 1  from tabela tmp where  tmp.klik > t.klik ) AS rang
FROM tabela AS t
ORDER BY klik DESC ) as vt 
where  rang  <>= x


Pozdrav

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme