Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628

    comporre un array ..con controllo (difficile)

    salve a tutti,

    ho una tabella con una colonna particolare: Vari_ID
    ovviamente ci sono più records nella tabella.Es:

    Utente | Vari_ID
    1 | 1,2,6,9
    2 | 1,6,9
    3 | 2,3,6,10

    Come potete vedere i valori in "Vari_ID" si possono ripetere ....
    quello che dovrei fare è questo:

    Avere una lista (o un array) dei valori separati da virgola, senza doppioni,e gli stessi utilizzarli per interrogare una seconda tabella ...quindi:

    1,2,3,5,9,10

    ...chi mi da una mano ? come procedo ?
    Webplease.it WebAgency
    www.webplease.it

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Li prendi tutti e componi una stringa lunghissima con doppioni.
    La splitti per la virgola ed ottieni un array, sempre con doppioni.
    Scorri l'array e ne crei un altro senza doppioni confrontando elemento per elemento del primo array (più grande), con il secondo.
    Non è un buon modo di progettare una tabella quello...

    Roby

  3. #3
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    grazie roby,

    vedo un pò ...che suggerimento mi dai per la tabella ?
    mi ritrovo una tabella così perchè inserisco in un campo dei valori presi da tanti checkbox, e quindi si ritrovano tutti separati da virgola ...
    Webplease.it WebAgency
    www.webplease.it

  4. #4
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    roby, mi dai una mano, please

    ritornando alla questione array, sto procedendo così:

    'compongo una stringa con tutti i valori con i doppioni
    while not rs.EOF
    if raggrup = "" then
    raggrup = rs("dato")
    else
    raggrup = raggrup &","& rs("dato")
    end if
    rs_dati_in_archivio.movenext
    wend

    così ottendo una stringa che comprende tutti i valori presi da tutti i record del DB ...quindi:

    raggrup = 2,2,3,4,5,5,5,6,7,8,2,3,5 ..ecc

    Poi ho pensato di procedere così:

    myarray = split(raggrup,",")
    for i=0 to ubound(myarray)
    if i=0 then
    no_doppioni = myarray(i)
    else
    no_doppioni = no_doppioni&","&myarray(i)
    end if
    next


    Qui dentro devo fare il controllo se ci sono doppioni, giusto ?

    Ora, ...ho trovato questo funzione in giro:

    <%
    function FindItemInArray(arrItems, item)
    dim pos
    pos = -1
    dim i
    ' verifica che il primo parametro sia un array
    if isarray(arrItems) then
    ' scorri i valori dell'array...
    for i=0 to ubound(arrItems)
    ' corrispondenza trovata?
    if(arrItems(i)=item)then
    ' memorizza la posizione nell'array ed esci dal ciclo for
    pos = i
    exit for
    end if
    next
    end if
    ' restituisci la posizione nell'array (o -1 se valore non trovato)
    FindItemInArray = pos
    end function
    %>

    La funzione restituisce -1 se non trova corrispondenze nell'array, altrimenti restituisce la posizione ...come faccio ad implementarla dentro quel FOR ?!?!
    Webplease.it WebAgency
    www.webplease.it

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Una nuova tabella con due campi:
    ID_utente (numerico)
    valore_checkbox (numerico)

    Avrai tanti record quanti sono i checkbox per ogni utente.

    Roby

  6. #6
    Utente di HTML.it L'avatar di legal-x
    Registrato dal
    Nov 2000
    Messaggi
    628
    fatto ... grazie lo stesso


    'compongo una stringa con tutti i valori SENZA i doppioni
    myarray = split(raggrup,",")
    for i=0 to ubound(myarray)
    if i=0 then
    no_doppioni = myarray(i)
    else
    if FindItemInArray(split(no_doppioni,","),myarray(i)) <> -1 then
    else
    no_doppioni = no_doppioni&","&myarray(i)
    end if
    end if


    richiamando ovviamente quella funzione ...spero non "ciuli" molte risorse
    Webplease.it WebAgency
    www.webplease.it

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.