/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Tilfældig post i database ?
Fra : Smirge


Dato : 11-03-04 14:08

Jeg har nu gennemlæst internettet samt gruppen herinde, og jeg har næsten
fundet svar på mit spørgsmål :

Jeg har en database(duh!) som jeg vil udvælge en tilfældig post fra.

Jeg har lavet en funktion, som tæller antal poster i tabellen, og returnere
et tilfældigt tal fra databasen - det virker fint, MEN!!!

ID feltet kommer ikke i numerisk rækkefølge - det kan godt være der mangler
nogle stykker mellem 1 og 10 f.eks: ser ID feltet i en af tabellerne såden
ud :

1
2
6
8
9

Det giver 5 poster - men hvis ovennævnte function returnerer tallet 3 - som
er gyldigt, da der er 5 poster i tabellen, så får jeg en fejl på siden (EOF
OR BOF) fejlen...

Hvordan selecterer jeg med de valide værdier i ID feltet ??

Martin



 
 
Smirge (11-03-2004)
Kommentar
Fra : Smirge


Dato : 11-03-04 14:13

> Jeg har nu gennemlæst internettet samt gruppen herinde, og jeg har næsten
> fundet svar på mit spørgsmål :
>
> Jeg har en database(duh!) som jeg vil udvælge en tilfældig post fra.
>
> Jeg har lavet en funktion, som tæller antal poster i tabellen, og
returnere
> et tilfældigt tal fra databasen - det virker fint, MEN!!!
>
> ID feltet kommer ikke i numerisk rækkefølge - det kan godt være der
mangler
> nogle stykker mellem 1 og 10 f.eks: ser ID feltet i en af tabellerne såden
> ud :
>
> 1
> 2
> 6
> 8
> 9
>
> Det giver 5 poster - men hvis ovennævnte function returnerer tallet 3 -
som
> er gyldigt, da der er 5 poster i tabellen, så får jeg en fejl på siden
(EOF
> OR BOF) fejlen...
>
> Hvordan selecterer jeg med de valide værdier i ID feltet ??
>
> Martin
skal lige nævne at det er access 2000 og at der mangler tal skyldes at
posterne engang i mellem bliver slettet skyldes at et givent produkt er
solgt...

Martin



Torben Brandt (11-03-2004)
Kommentar
Fra : Torben Brandt


Dato : 11-03-04 14:28

Smirge skrev:
>>Jeg har nu gennemlæst internettet samt gruppen herinde, og jeg har næsten
>>fundet svar på mit spørgsmål :
>>
>>Jeg har en database(duh!) som jeg vil udvælge en tilfældig post fra.
>>Jeg har lavet en funktion, som tæller antal poster i tabellen, og
>>returnere et tilfældigt tal fra databasen - det virker fint, MEN!!!
>>ID feltet kommer ikke i numerisk rækkefølge - det kan godt være der
>>mangler nogle stykker mellem 1 og 10 f.eks: ser ID feltet i en af
>>tabellerne såden ud :
>>
>>1
>>2
>>6
>>8
>>9
>>
>>Det giver 5 poster - men hvis ovennævnte function returnerer tallet 3 -
>>som er gyldigt, da der er 5 poster i tabellen, så får jeg en fejl på siden
>>(EOF OR BOF) fejlen...
>>
>>Hvordan selecterer jeg med de valide værdier i ID feltet ??
>
> skal lige nævne at det er access 2000 og at der mangler tal skyldes at
> posterne engang i mellem bliver slettet skyldes at et givent produkt er
> solgt...

I tråden der starter med emnet "SELECT RANDOM" fra 08-03-2004 10:30
(fortsætter delvist i <news:dk.edb.database>) er der diskuteret et par
muligheder.

Alternativt kan du trække id'erne fra posterne ud af tabellen.
Gemme dem som et array (evt med rs.GetRows)
Så kan du se hvor lang array'et er
Vælg et tilvældigt heltal (Int(Rnd * antalPoster))
Find hvilket id, der er på den tilsvarende plads i array'et
Træk denne post ud af databasen.

/Torben


Smirge (12-03-2004)
Kommentar
Fra : Smirge


Dato : 12-03-04 12:51

> > Hvordan selecterer jeg med de valide værdier i ID feltet ??
> >
> > Martin
> skal lige nævne at det er access 2000 og at der mangler tal skyldes at
> posterne engang i mellem bliver slettet skyldes at et givent produkt er
> solgt...
>
> Martin
Bare til info :

Jeg lavede en count(id) og talte antal record i DB. Dernæst brugte jeg
rs.movenext(counter) (flyt cursor X pladser i databasen) og læser så ud
derfra - på den måde undgår jeg at generere et tilfældigt tal som ikke
findes i id feltet i databasen.

Ved ikke om det er den mest optimale løsning, men det virker ;)

Martin



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste