Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    11

    riempire un array con un ciclo while

    Scusate per la seconda richiesta in pochi giorni...
    il mio codice:


    <% While ((Repeat1__numRows <> 0) AND (NOT formula.EOF))

    id_formula = (formula.Fields.Item("ID_FORMULA").Value)

    myarr = split(formula("ID_FORMULA"),",")
    for i = 0 to uBound(myarr)
    response.write myarr(i) & "
    "
    next
    formula.moveNext


    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    formula.MoveNext()
    Wend
    %>

    passo un parametro dall'url, con questo parametro creo il recorset "formula" che cerca tutti gli ID_FORMULA che sono associati al parametro passato dall'url.
    Ora vorrei riuscire a salvare questi id in modo da utilizzarli nella select di un altro recordset, per tirare fuori tutti i record associati agli ID_FORMULA che sono usciti dal ciclo while.
    Così sto provando a salvarli su un array, ma non me ne intendo molto di array.-
    Mi andrebbe bene anche una stringa in cui i parametri sono separati da una virgola.

    Col codice che ho scritto il risultato dell'array che mi stampa è solo un ID, l'ultimo del ciclo WHILE, mentre dovrebbe farmi uscire due risultati.

    Cosa sto sbagliando? E soprattutto, il codice myarr = split(formula("ID_FORMULA"),",") esattemente che vuol dire?


    grazie per la pazienza!
    Sabrina

  2. #2
    La funzione SPLIT genera un array partendo da una stringa e prendendo come riferimento un carattere della stringa come elemento delimitatore per i singoli elementi dell'array.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    11
    grazie, quindi io che devo memorizzare dentro all'array gli ID non devo usare la funzione split...

  4. #4
    Suppongo che il campo id_formula contenga dati di questo tipo
    1,3,45,67,87,99,145
    allora, devi portarti dietro l'array da ciclo a ciclo...
    codice:
    <% 
    x = 0
    dim myNewArr()
    While ((Repeat1__numRows <> 0) AND (NOT formula.EOF))
    
    id_formula = (formula.Fields.Item("ID_FORMULA").Value)
    
    myarr = split(formula("ID_FORMULA"),",")
    for i = 0 to uBound(myarr)
    reDim preseve myNewArr(x)
    myNewArr(x) = myarr(i)
    x = x + 1
    next
    formula.moveNext
    
    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    formula.MoveNext()
    Wend
    
    for y = 0 to uBound(myNewArr)
    response.write myNewArr(y) & "
    "
    next
    %>

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    11
    ho inserito il tuo codice ma dà questo errore:

    Microsoft VBScript compilation error '800a03ed'

    Expected '('

    /cerca_formulaINGR.asp, line 48

    reDim preseve myNewArr(x)
    --------------^


    mettendoci una rparentesi in questa riga di codice (come mi pare chieda)
    mi dà quest'altro errore:

    Microsoft VBScript runtime error '800a0009'

    Subscript out of range

    reDim preseve (myNewArr(x))

  6. #6
    scusa, è preserve non preseve

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    11
    grazie

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.