28 messaggi dal 28 gennaio 2004
Ciao Amici,
ho un problema con questo script. Utilizzo Ms Sql Server 2005.
In pratica ricavo con la funzione random tre immagini da visualizzare.
Il problema che ho è che nella serie delle tre immagini che visualizzo a video, capita a volte che ci sono immagine duplicate (ad esempio 2 immagini uguali ed una diversa).
Come si fa ad evitare duplicati nell'output??
Il codice è il seguente:
<%
....

SQL = "SELECT * FROM localita WHERE img_loc = 'Roma' AND img_id >= (rand() * (SELECT MAX(img_id) FROM localita))"
rs.Open SQL, cn, 1

For i = 1 To 3
If rs.EOF Then Exit For

%>
<img src="<%=rs("img_url") %>" />
<%
rs.MoveNext
If rs.EOF Then Exit For
Next

%>

A chi mi aiuta offrirò da bere

Giuseppe
176 messaggi dal 04 giugno 2007
Contributi | Blog
Il modo piu' semplice per estrarre N righe a caso da una tabella in SQL Server è
SELECT TOP N column 
FROM table
ORDER BY NEWID()


dove N e' il numero di righe che vuoi estrarre. Questo garantisce tra le altre cose che siano distinte.

HTH

--Alessandro
28 messaggi dal 28 gennaio 2004
Ciao Alessandro,
grazie per la tua indicazione, purtroppo il problema mi si ripropone.

in effetti ho modificato lo script cosi:
.....

SQL = "SELECT TOP 3 * FROM localita WHERE img_loc = 'Roma' ORDER BY NEWID()"
rs.Open SQL, cn, 1

....
Ho anche aumentato il numero di immagini disponibili a 10, ma seppur non immediatamente la duplicazione si ripropone.

Cosa ne pensi?

G.
28 messaggi dal 28 gennaio 2004
Funziona!! Mi correggo... ho trovato l'errore non nello script. Avevo un immagine duplicata nel DB

Ale, ti sono debitore!!
se vieni dalle mie parti ti offrirò da bere

Saluti
G.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.