[ASP.Net] Non elencare nella select i duplicati dallo split

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Ciao non so come evitare la duplicazione dei risultati dallo split, premetto che lo script funziona
Codice:
<%
loca = request.querystring("loc")

sql = "SELECT DISTINCT localita FROM offerte WHERE tipo = '" & request.querystring("mod") & "' GROUP BY localita"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 3

if rs.eof then
else
%>
<td >
<select size="1" name="loc" onchange='this.form.submit()'>

<%
rs.MoveFirst 
Do While Not rs.EOF

controllo = rs.fields("localita")

arryControllo = Split(Controllo, ", ") 

For i=0 to UBound(arryControllo)

stringa = Trim(arryControllo(i))

%>

<option value="<%=stringa%>"<%if loca = "" & stringa & "" then%>selected="selected"<%end if%> ><%=stringa%></option>
<%
Next

rs.MoveNext
Loop
rs.Close
set rs = Nothing
end if
%>
Grazie
 
Ciao non so come evitare la duplicazione dei risultati dallo split, premetto che lo script funziona
Codice:
<%
loca = request.querystring("loc")

sql = "SELECT DISTINCT localita FROM offerte WHERE tipo = '" & request.querystring("mod") & "' GROUP BY localita"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 3

if rs.eof then
else
%>
<td >
<select size="1" name="loc" onchange='this.form.submit()'>

<%
rs.MoveFirst
Do While Not rs.EOF

controllo = rs.fields("localita")

arryControllo = Split(Controllo, ", ")

For i=0 to UBound(arryControllo)

stringa = Trim(arryControllo(i))

%>

<option value="<%=stringa%>"<%if loca = "" & stringa & "" then%>selected="selected"<%end if%> ><%=stringa%></option>
<%
Next

rs.MoveNext
Loop
rs.Close
set rs = Nothing
end if
%>
Grazie
Ho sbagliato sezione chiedo al moderato di spostare questo post in ASP CLASSIC, grazie
 
La devo splittare perchè il campo localitas contiene nel campo varie località con virgola, tipo:
MILANO, ROMA, FIRENZE
Infatti così funziona, ma purtroppo ho il problema dei duplicati
 
Curiosità, ma all'interno del DB trovi nel campo località trovi:

LOCALITA
1 MILANO
2 ROMA
3 PALERMO
4 ANCONA

oppure:

LOCALITA
1 MILANO,ROMA,PALERMO,ANCONA...

così emulo il DB e faccio qualche prova..
 
No trovi in una riga tutte le località cioè:
1 Milano, Parma, Roma
2 Roma, Perugia, Napoli
e così, da premettere che ogni riga può avere le stesse località come ho indicato ieri.
grazie
 
...sinceramente non so come eliminare due informazioni simili in un record dopo averli splittati.

in teoria, ma non impossibile, dovresti splittare il record ed inserirlo in una tabella temporanea, con una query "DISTINCT" estrapolare solo i valori non duplicati ed elencarli... successivamente eliminare i valori dalla tabella temporanea...

volendo, potresti creare una tabella correlata al record con i campi già splittati...

lavorando di fantasia si può fare...
 
Grazie Paolo69, ma mi risulta alquanto difficile, mi hanno consigliato questo script al posto dello split:
Codice:
Function SplittaDistinct(str,sep)
    dim strx, sepx, arr, i, dic
    set dic=Server.CreateObject("Scripting.Dictionary")
    arr = Split(str,sep)
    strx=""
    sepx=""
    for i=LBound(arr) to UBound(arr)
        if not dic.Exists(arr(i)) then
            strx=strx & sepx & arr(i)
            dic.Add arr(i),true
            sepx=sep
        end if
    next
    SplittaDistinct = Split(strx,sep)
End Function
Ma non saprei come adattarlo al mio script, puoi darmi una mano, grazie 1000
 

Discussioni simili