Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    eliminare doppioni da 3 variabili

    ciao a tutti!

    ho questo problema:

    mi ritrovo in una pagina ad aver 3 variabili che contengono più email.

    dato che è possibile che la stessa email sia presente in tutte e tre le variabili, devo cercare di creare una lista unica (una variabile) senza email doppie.

    per creare queste 3 variabile uso 2 metodi, in uno le prelevo dal request.form della pagina da cui arrivo così:

    codice:
    tipo1 = trim(request.Form("emailutente"))
    
    arraymail = split(tipo1, ",")
    e1=""
    for i = 0 to UBound(arraymail)
    e1=e1&arraymail(i)&";"
    next
    NI1=UBound(arraymail)+1
    le altre 2 variabili le prelevo da due db così:

    codice:
    set rs = Server.CreateObject("ADODB.Recordset")
    sql="SELECT ... "
    rs.open sql, connNS, 0, 3
    
    if NOT rs.eof then
    emailNS2=rs.GetRows()
    Totale_RecordNS2=UBound(emailNS2, 2)
    NI2 = Totale_RecordNS2+1
    e2=""
    For RecordNS2 = 0 To Totale_RecordNS2
    if check_email(emailNS2(0,RecordNS2))=True then     'funzione per vedere se sono email valide
    e2=e2&emailNS2(0,RecordNS2)&";
    "
    else
    e2=e2&""
    end if
    Next
    ripeto quest'ultimo passaggio per un altro db e ottengo le 3 variabili.
    ma come faccio ad eliminare i doppioni?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi usare un contenitore d'appoggio (un array? una tabella?) in cui andare a depositare gli indirizzi "unici": prima di inserire in quest'ultimo contenitore qualcosa verifichi che non sia già presente.
    Alla fine avrai una lista pulita.

    Roby

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da Roby_72
    Devi usare un contenitore d'appoggio (un array? una tabella?) in cui andare a depositare gli indirizzi "unici": prima di inserire in quest'ultimo contenitore qualcosa verifichi che non sia già presente.
    Alla fine avrai una lista pulita.

    Roby
    si, avevo pensato anch'io a questa teoria... è la pratica che non mi sovviene molto...

    ovvero intanto, meglio metterli in un array o in un recordset disconnesso, o altro?

    e poi in che modo faccio la verifica?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4
    butta le mail in un recordset disconnesso e poi fai una select distinct

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da optime
    butta le mail in un recordset disconnesso e poi fai una select distinct
    ah VVoVe:

    ma la query, come la metto giù?

    nel senso:SELECT DISTINCT campo FROM ... :master:
    e prima della query il recordset lo devo chiudere per poi riaplirlo...?

    son confuso! :master:
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  6. #6
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    giusto per capire se faccio cavolate:

    creo il recordset disconnesso così:

    codice:
    dim rsD
    Set rsD = Server.CreateObject("ADODB.Recordset")
    RsD.Fields.Append "email",200,255
    RsD.Open
    lo implemento così (per le N volte che mi servono):

    codice:
    for i = 0 to UBound(arraymail)
    'e1=e1&arraymail(i)&";
    "
    rsD.addnew
    rsD("email")=arraymail(i)
    rsD.update
    next
    così lo leggo:
    codice:
    do while not rsD.eof
    response.Write(rsD("email")&"
    ")
    rsD.movenext
    loop
    ma la select dove/come la metto?
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  7. #7
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    qua ancora nebbia fitta...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  8. #8
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da yro
    qua ancora nebbia fitta...
    in alternativa potrei usare questa funzione proposta da baol:

    codice:
    Function InString(StringList,Value,Ch)
    	InString = InStr(1,Ch & StringList & Ch,Ch & Value & Ch,1)>0
    End Function
    
    Function AddArray(Ar1,Ar2)
    	Dim l1,l2,Length,i,ChSep
    	Dim StrArray,ArCheck
    	ChSep = "|"
    	l1 = uBound(Ar1)
    	l2 = uBound(Ar2)
    	If l1>l2 then
    		StrArray = Join(Ar1,ChSep):ArCheck = Ar2:Length = l2
    	Else
    		StrArray = Join(Ar2,ChSep):ArCheck = Ar1:Length = l1
    	End if
    	For i = 0 to Length
    		If Not InString(StrArray,ArCheck(i),ChSep) then StrArray = StrArray & ChSep & ArCheck(i)
    	Next
    	AddArray = Split(StrArray,ChSep)
    End Function
    non so che altri pesci prendere...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  9. #9
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    scusate se riuppo ma non so più come procedere!
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  10. #10
    scusa se rispondo solo adesso. assodato che un recordset non è una sorgente dati, non puioi farci una SELECT contro (errore mio, suggerimento sbagliato, scusa).

    però puoi prevenire l'inserimento doppio (e ottieni lo stesso risultato): *prima* di inserire vedi se la mail c'è già (con rs.find o rs.filter); se NON c'è, inserisci

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 © 2026 vBulletin Solutions, Inc. All rights reserved.