Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Estrazione random

  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Estrazione random

    Buona domenica a tutti.

    Ho questo problema: da un db access con circa 4000 records faccio estrarre randomicamente 15 records alla volta che visualizzo correttamente a video.

    Adesso però ho la necessità di estrarre in maniera fissa 5 di questi 15 records che devono apparire sempre come i primi 5 della lista, mentre gli altri 10 devono continuare ad essere estratti randomicamente.

    Avete qualche suggerimento su come posso realizzare tutto ciò ?
    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ne estrai 10 random. I primi 5 non sono random.

    Roby

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie per la risposta, ma non ti seguo.

    I cinque records fissi non sono sempre i primi cinque della tabella... possono essere gli ultimi o possono stare in mezzo alla tabella tra i 4000 records estratti randomicamente... questo è il codice di estrazione random:
    codice:
    
    <%
    
    dim iItems()
    iMaxItems = 15
    
    strSQL = "SELECT * FROM tabella ORDER BY data desc"
    Set objRS = Server.CreateObject("ADODB.Recordset")
    
    objRS.Open strSQL, objConn, adOpenStatic, adLockReadOnly, adCmdText
    
    cont=1
    Do While iRecordsShown < iPageSize And Not objRS.EOF
    
    Dim Rig, bg
    
    Rig = Rig + 1
    If Rig Mod 2 = 0 then
    	bg = "#E4E4E4"
    Else
    	bg = "#FFFFFF"	
    End if	
    
    iMax = objRS.recordCount
    
    	if iMax < iMaxItems then iMaxItems = iMax	
    	reDim iItems(iMaxItems - 1)
    	for x = 0 to iMaxItems - 1
    	randomize()
    	i = int(iMax * rnd() + 1)
    		for y = 0 to uBound(iItems)
    		alreadyExists = false
    			if iItems(y) = i then
    			alreadyExists = true
    			x = x - 1
    			exit for
    			end if
    		next
    		if not alreadyExists then
    		iItems(x) = i
    		end if
    	next
    	if not objRS.eof then
    		for each item in iItems
    		objRS.moveFirst
    		objRS.move item - 1
    		next
    	end if
    
    ' QUI STAMPO I 15 RECORDS ESTRATTI RANDOMICAMENTE
    
    Cont = Cont + 1
    
    iRecordsShown = iRecordsShown + 1
    objRS.MoveNext
    Loop
    
    objRS.Close
    Set objRS = Nothing
    
    
    %>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.