Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180

    Inserimento Multiplo di records

    Ciau,
    ho il seguente problema ho due tabelle una alunni ed una voti.
    Ho creato il ciclo che stampa a video la lista degli alunni e vorrei far comparire accanto ad ogniuno una input box tipo text dove andrò ad inserire il voto per ogni alunno, e con un pulsante "invio" in fondo alla pagina inviare tutti i dati inseriti.
    Ogni voto genera un record con 4 campi, voto(input txt), data(la prende in auto), tipo(input), idalunno(lo prende da rsAlunni("id").

    Riesco solo ad assegnare un nome dinamico ai campi di input combinando un nome generico con l'id dell'alunno e poi ? datemi qualche idea plz

  2. #2
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    intendi..

    <input name="<% irs("id") %>">


    così ognuni input avrà come "nome" l' id

  3. #3
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    si ma non so come continuare perche il numero di elementi generato varia.

    mi sa bisogna usare una funzione particolare che conta gli alunni listati. non so da dove partire.

    l'unico articolo interessante trovato nel sito è questo :

    http://asp.html.it/articoli/leggi/75...plo-di-record/

    il punto è che questo aggiorna nella stessa tabella che lista i records io invece dovrei inviarli ad un'altra....

  4. #4
    devi usare gli array.

    Crei un array che contiene tutti gli Id degli alunni, poi fai lo split dell'array e fai il ciclo:
    a questo punto ad ogni "giro" del ciclo, considera l'id dell'utente, e tu metti nel ciclo la SQL che fa o l'inserimento o l'update(dipende da cosa vuoi fare), che ti considererà le input che avranno l'id che c'è in quel ciclo, che potrai anche usare per il campo ID del database...

    non so se mi sono spiegato bene....

  5. #5
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    ok l'ho fatto modificando quello script,

    come gli dico che se il campo è vuoto deve saltare al successivo ?

    codice:
    call dbConnect(conn,dbConnString)
    tot_alunni = Request.Form("tot_alunni")
    For i = 0 to tot_giocatori
    	myVar = "alunno_id"& CStr(i)
    	myID = Request.Form(myVar)
    	myVar2 = "alunno_voti"& CStr(i)
    	myVoti = Request.Form(myVar2)
    	materia = Request.QueryString("materia")
    	
    	call inserisciVoti(conn,id,classe)
    Next
    la sub è questa
    codice:
    sub inserisciVoti(objConn,id,classe)
    	 '"insert into voti SET alunno_voti = "& myVoti &" WHERE alunno_id=" & myID
    	
    	materia=request.QueryString("materia")
    	strSQL = "insert into voti (voto,scritto, data, materia, idalunno) values ('" & myVoti & "','si','" & now() & "','" & materia & "','" & myId & "')"
    	
    	objConn.Execute(strSQL)
    end sub

    if myVoti = "" then .......(andara al prossimo form) senza creare record vuoti.


  6. #6
    ...fai al contrario...if MyVoto<>"" then.....fai l'inserimento....end if....così lo fa solo se trova qualcosa...

  7. #7
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    bravo funziona

    l'ho messo la :
    codice:
    call dbConnect(conn,dbConnString)
    tot_alunni = Request.Form("tot_alunni")
    For i = 0 to tot_giocatori
    	myVar = "alunno_id"& CStr(i)
    	myID = Request.Form(myVar)
    	myVar2 = "alunno_voti"& CStr(i)
    	myVoti = Request.Form(myVar2)
    	materia = Request.QueryString("materia")
    	if myVoti <> "" then '<<<<<<<<<<<<<<<<<<<<<
    	call inserisciVoti(conn,id,classe)
    end if  '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    Next

  8. #8
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    hum attendere.

  9. #9
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    ok FUNZIA alla grandissima ....grazie bello =)

    ho capito in pieno tutto lo script di html.it e grazie anche ad Ale_1976 se a qualcuno serve qualche dettaglio resto a isposizion'

  10. #10
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    In base ad una richiesta pervenuta tramite PM posto la risposta anche qui, per cercare di spiegare come funziona quello script e qual'è la parte fondamentale che inserisce i records.

    Dunque il sistema è semplice una volta che il form viene genarato automaticamente facendo in modo che il nome del campo di input sia personalizzato tramite una costante stringa numerica, il modo per inserire i valori dentro al db è quello di fare eseguire una routine sql di inserimento per ogni record che trova.

    Non so se hai scaricato il file che ho indicato nel post, quel file ti aiuta a capire come esegue l'inserimento.

    Quindi mettiamo che tu abbia definito una variabile numerica chiamata vx (come riportato nel form di quello script) e attribbuiamo il valore vx = 0

    il nome del campo di input sarà ad esempio "bravo<% =cstr(vx) %>" in questo modo fai si che per ogni record avrai una numerazione per il campo variabile a seconda del numero degli utenti, quindi avrai bravo0, bravo1 , bravo2 generato automaticamente.

    Al difuori del loop dovrai inserire un campo input che conteggia i tuoi record che chiamerai tot_utenti che avrà dentro il valore totale dei tuoi utenti <% =vx-1 %>

    dopo di che dovrai definire la pagina o la funzione dove vengono aggiornati i campi, che dovrà contenere questa funzione:

    Apri la connessione alla tua tabella e poi

    tot_utenti = Request.Form("tot_utenti")
    For i = 0 to tot_utenti
    mybravo = "bravo"& CStr(i)
    myValue = Request.Form(myBravo)
    '''e cosi via se ne hai altri ricordati di impostare il nome del campo input nome<% =cstr(vx) %>
    if mybravo <> "" then
    strSQL = "insert into tabella (bravo, altrocampo) values ('" & myValue & "' , '" & ALTRI valori & "')"
    end if
    Next

    #####################################
    QUesto è il ciclo che conteggia gli utenti elencati e per ogniuno esegue un loop di inserimento,
    questa funzione significa: per ogni "i"(utente) che trovi da 0 al numero totale degli utenti , prende il valore del form e lo inserische nel db.

    ciauz.

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.