Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395

    Prendere piu' valori da una tabella

    Ciao a tutti ho il seguente problema:
    in una pagina asp mando ad un altra pagina una serie di Id riguardanti uno Staff. Tutti questi Id arrivano alla'ltra pagina, il mio problema e' che non riesco nella seconda pagina ad associare per ogni Id il giusto nome.
    ecco lo script della seconda pagina:

    RefStaff = request.form("Sel") 'Prendo tutti gli ID selezionati

    'metto tutti gli id in una select per cercare di tirare fuori i nomi corrispondenti
    sqlStaff="SELECT * FROM Staff where IdStaff in (" + Replace(RefStaff, "'", "''") + ")"
    Set rsStaff = Server.CreateObject("ADODB.Recordset")
    rsStaff.Open sqlStaff, conn ,1,3

    'se faccio un response.write il risultato e' questo (ed e' giusto)

    SELECT * FROM Staff where IdStaff in (23, 38, 41, 1, 22, 3, 8, 2, 6, 18, 40, 17, 46, 19, 21, 5, 43, 42, 13, 14, 44, 26, 15, 4, 16, 12, 11, 7, 10, 45, 9, 27)

    a questo punto ogni IdStaff mi dovrebbe tirar fuori il corrispondente Nome preso sempre dalla tabella staff, come faccio?
    Ho provato con un loop ma mi scrive solo l'ultimo tipo:

    do while not(rsStaff.EOF)
    Nome = rsStaff("Name")
    rsStaff.movenext
    loop
    Se faccio un response.write (Nome) mi scrive solo l'ultimo cioe' quello con Id= 46
    Come FACCIO?
    Penso di dover fare un array, mi siccome non l'ho mai fatto non so impostarlo qualcuno mi puo' dare una mano....

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Ho provato a fare un array, tipo questo:

    sqlStaff="SELECT * FROM Staff where IdStaff in (" + Replace(RefStaff, "'", "''") + ")"
    Set rsStaff = Server.CreateObject("ADODB.Recordset")
    rsStaff.Open sqlStaff, conn ,1,3
    Dim ConteggioRs
    ConteggioRs = FormatNumber(rsStaff.RecordCount,0) ' nel mio caso i record sono 32

    for i = 0 to (ConteggioRs)
    response.write(rsStaff("Name"))
    next
    response.End()

    l'array funziona nel senso che scrive 32 volte il nome ma SOLO del PRIMO ID, cioe' di IdStaff = 1.....?????????

    ecco cosa mi scrive:
    LucaLucaLucaLucaLucaLucaLucaLucaLucaLucaLucaLucaLu caLucaLucaLucaLucaLucaLucaLucaLucaLucaLucaLucaLuca LucaLucaLucaLucaLucaLucaLucaLuca

    Come faccio a fargli scorrere gli altri nomi???
    PLEASE HELP ME...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Proprio nessuno mi sa dare una mano???


  4. #4
    Cioè se scrivi:

    codice:
    do while not rsStaff.Eof()  
    Nome = rsStaff("Name") 
    Response.Write(Nome) 
    rsStaff.movenext
    loop
    ti da solo l'ultimo ?
    Se metti il "Response.Write" fuori dal ciclo "do" è normale, dato che prende solo l'ultimo record...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    ok e' giusta la tua osservazione infatti se metto il Response.Write dentro il ciclo mi scrive tutti i nomi giusti.
    Ora il problema e' come faccio ad avere una variabile fuori dal ciclo che sia uguale a il precedente response.write?
    ex:
    do while not rsStaff.Eof()
    Nome = rsStaff("Name")
    Response.Write(Nome)
    rsStaff.movenext
    loop

    TuttiNomi =Response.Write(Nome) 'li voglio tutti!!!!

    Mi serve di avere una variabile = a quel response.write per poter registrare in una tabella di un database.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Ciao come faccio a mettere questo response.write(Nome) tutto dentro ad una variabile?

    Mi ci vorrebbe, come risultato, qualcosa del tipo:

    Dim TuttiNomi

    TuttiNomi=Luca,Mario,Sergio,Carlo,Marco .....

    Qualche idea?

  7. #7
    Prova così:

    codice:
    Dim TuttiNomi
    
    do while not rsStaff.Eof()  
    Nome = rsStaff("Name") 
    TuttiNomi = TuttiNomi & Nome
    rsStaff.movenext
    if not rsStaff.Eof() Then
       TuttiNomi = TuttiNomi & ","
    end if
    loop
    Response.Write(TuttiNomi)
    Ciao

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.