Buonasera.
Come si estraggono randomicamente diciotto records per volta da un db mysql?
I records nel db mysql sono circa 1000.
Grazie
Buonasera.
Come si estraggono randomicamente diciotto records per volta da un db mysql?
I records nel db mysql sono circa 1000.
Grazie
'************* Bouble Sort - Ordinamento array **************
Function Random(limiteinf,limitesup)
If limiteinf>limitesup or limiteinf=limitesup then
err.raise 500,"Asp Function Error : Random","Parametri Errati"
end if
Randomize
Random = Int((limitesup - limiteinf + 1) * Rnd + limiteinf)
end function
Function GetRandomArray(nElement,limiteinf,limitesup)
If limitesup-limiteinf+1<nElement then
err.raise 500,"Asp Function Error : GetRandomArray","Parametri Errati"
end if
Set Dic = Server.CreateObject("Scripting.Dictionary")
For i=1 to nElement
nRnd = Random(limiteinf,limitesup)
while Dic.Exists(nRnd)
nRnd = Random(limiteinf,limitesup)
Wend
Dic(nRnd) = nRnd
next
GetRandomArray = Dic.items
Dic.RemoveAll
Set Dic = Nothing
end function
'Ipotizzando che il numero di record sia 1000
tot_rec = 1000
arr = GetRandomArray(18,1,tot_rec)
In arr hai l'array dei 18 indici estratti. Puoi farci poi le query sulla tabella.
roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
Roby tutte ste righe di codice non servono:
codice:sql = "SELECT campo FROM tbl ORDER BY RAND() LIMIT 18"
Ah beh, non avevo letto la cosa più importante: mysql![]()
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
Grazie per le risposte, mi spiegate per favore la differenza tra questo codice (che estrae 18 records randomicamente dal db mysql):
e la query suggerita da supergeniux:codice:'Recupero le variabili per paginare page = Cint(request.querystring("page")) if page = 0 then page = 1 'Totale dei record strSQL = "SELECT COUNT(*) FROM tbl_quote" Set objRS = objConn.Execute(strSQL) tot_record = objRS(0) set objRS = nothing 'Record per pagina pageSize = 18 'Primo record di ogni pagina inizio = (page - 1) * pageSize 'Pagine complessive per effetto della paginazione pagine_totali = CInt(tot_record) / pageSize 'Arrotondamento in caso di resto della divisione precedente if pagine_totali - CInt(pagine_totali) > 0 then pagine_totali = CInt(pagine_totali + 1) else pagine_totali = CInt(pagine_totali) end If 'Visualizzazione dei record paginati strSQL = "SELECT * FROM tbl_quote ORDER BY RAND() LIMIT "& inizio &", "& pageSize &""
codice:sql = "SELECT campo FROM tbl ORDER BY RAND() LIMIT 18"
Il primo ne prende 18 ma li pagina.
Il secondo script ne prende 18, punto e basta.
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
il primo usa una funzione nativa del db, il secondo è una porcata ideata per supplire una mancanza del db
Porcata sta per?Originariamente inviato da santino83
il primo usa una funzione nativa del db, il secondo è una porcata ideata per supplire una mancanza del db
porcata sta per "mi arrangio e m'invento qualcosa" per estrarre 18 valori rnd
tanto porcata non mi sembra allora, poi dipende dai gusti :rollo: