Visualizzazione dei risultati da 1 a 10 su 10

Discussione: dove sbaglio con instr

  1. #1

    dove sbaglio con instr

    Ciao a tutti

    vorrei controllare se dentro la stringa DESTINATARI_ID è presente la variabile ACCOUNT_ID

    ecco il codice e come sono inizializzate le variabili le varibili

    DESTINATARI_ID="7, 40, 39"
    ACCOUNT_ID ="7"

    i=0
    ArrPar=array (DESTINATARI_ID)
    for i=0 to ubound(ArrPar)

    if instr(1,ACCOUNT_ID,ArrPar(i))>0 then
    Response.Write("c'è")

    exit for
    else
    Response.Write("non c'è")
    end if

    next



  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    DESTINATARI_ID="7, 40, 39"
    ACCOUNT_ID ="7"
    
    DESTINATARI_ID2 = ", "& DESTINATARI_ID
    if instr(DESTINATARI_ID2,", "& ACCOUNT_ID) > 0 then
    response.write ("Eccolo qui!")
    end if
    Roby

  3. #3

    funziona

    Grazie Roby come al solito tanto di cappello perchè funziona tutto.... ma se non ti disturbo troppo posso sapere cosa sbagliavo e sopratutto mi potresti spiegare perchè in questo modo funziona, perchè non ho capito oil codice che mi hai postato.

    (sempre se hai tempo)

    grazie

    Ciao


  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il concetto è semplice.
    Se hai "7, 87, 45" e cerchi 7 hai il problema che la instr semplice lo troverà due volte.

    Allora devi far diventare la stringa ", 7, 87, 45" e cercare ", 7".
    In questo modo sei sicuro di trovare proprio quello che stai cercando.

    Roby

  5. #5

    grazie

    adesso è chiaro!

    grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Visto che il mio problema è simile a quella di aldeg, riprendo questa discussione, per avere, se possibile, un suggerimento.

    Nel mio caso i numeri vanno da 1 a 213 (sono tutti i colori RAL).
    Devo cercare, in una stringa, i numeri che possono essere composti da una, due o tre cifre.

    In questo esempio, vorrei verificare se i numeri della stringa mieinumeri sono presenti nel campo id della tabella ral (che contiene tutti i numeri da 1 a 213). Se i numeri ci sono, me li deve scrivere.

    Codice PHP:
    sqlColori "SELECT * FROM ral"
    SET RS2 Conn.Execute(sqlColori)
    Do While 
    Not RS2.EOF

    mieinumeri
    "1, 2, 3, 10, 12, 22, 24, 101, 134, 200, 213"
    mieinumeri2",     " mieinumeri
        
    IF instr(mieinumeri2", "RS2("id")) <> 0 Then Response.Write RS2("id") & "
    "
    RS2.MoveNext
    Loop 
    Ottengo questo:
    1
    2
    3
    10
    12
    13
    20
    21
    22
    24
    101
    134
    200
    213

    Oltre a tutti i numeri che mi deve stampare, vedo anche parti di altri numeri.
    13, perché c'è 213.
    20, perché c'è 200.
    21, perché c'è 213.

    Come risolvo?

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ho capito da questa stringa

    mieinumeri= "1, 2, 3, 10, 12, 22, 24, 101, 134, 200, 213"

    cosa vorresti che scrivesse.

    Roby

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Se i numeri presenti nella stringa mieinumeri= "1, 2, 3, 10, 12, 22, 24, 101, 134, 200, 213" sono presenti nel campo id della tabella RAL, me li deve stampare a video (uno sotto all'altro).
    Se, invece, in quell'elenco ci fosse un numero non presente nel campo id della tabella RAL o se la stringa mieinumeri fosse vuota, non mi deve stampare niente (o mi deve scrivere che i numeri non ci sono).

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Potresti crearti un array con quei valori e per ogni elemento nella tabella scorrere l'array e vedere se c'è.
    Oppure in maniera più rozza aggiungere a quella stringa una virgola all'inizio e alla fine, togliere gli spazi nel mezzo che ci sono e poi fare effettivamente una instr su ogni elemento recuperato dalla tabella:
    codice:
    if instr(mieinumeri,","& RS2("id") &",") > 0 then
    response.write RS2("id")&"
    "
    end if
    Roby

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Grazie Roby!
    Ho risolto con l'array.

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.