Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Inserire più record

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112

    Inserire più record

    ho questo pronlema:
    la tabella utentecollegato ( ID, UTENTE, ID_TERRENO)
    deve essere popolata da un form che ha più campi uguali.Ovvero:

    codice:
    ciclo DO WHILE
    <input type="text" value="<%=rs("id_terreno")%>" name="id">
    
    <input type="text" value="<%=rs("utente")%>" name="utente">
    
    RS.MoveNext
    Loop
    <input type="submit">

  2. #2
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    codice:
    <select size="1" name="QuelloCheSia">
                    <option>Select</option>
                    </style>
    <%
    sql = "SELECT * FROM TuaTabella order by ID"
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, cn, 3, 3
    
    rs.MoveFirst  
    Do While Not rs.EOF
    %>
    
    <option value="<%=rs("ID")%>"><%=rs("valore")%>-<%=rs("valore")%></option>
    
    <%
    rs.MoveNext
    Loop
    rs.Close
    set rs = Nothing
    %>
    
                  </select>

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    non mi sonospiegato bene.
    Devo cercare di fare UPDATE o INSERT nel Db di tutti i record trovati dalla query che popola il campo Option.

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    uff,,,,speravo in uno scriptino pronto, o quasi....
    grazie cmq per le info.

    Qualche buon anima??

  6. #6
    guarda che sei già a buon punto. nel link è spiegato solo come leggere l'array che hai creato tramite il request.form
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    ho provato, ma non riesco a modificarlo alle mie esigenze.
    Puoi aiutarmi a risolvere il problema?

  8. #8
    Fammi capire: tu fai una query sul db e ti vengono restituiti dei dati che metti dentro dei campi FORM in modo da poterli editare in massa e quindi aggiornarli sempre in massa giusto?

  9. #9
    Ti posto il mio esempio:
    showdata.asp
    codice:
    <%
    set conn = server.createObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\database\test.mdb")
    
    	sql = "SELECT * FROM tabellaDati"
    	set rs = conn.execute(sql)
    	
    		if not rs.eof then
    %>
    <form method="post" action="updatedata.asp">
    <%
    			do until rs.eof
    %>
    
    
    
    <input type="text" name="<%=rs(1).name%>_<%=rs("campoID")%>" value="<%=rs("campoTitolo")%>">
    
    <textarea name="<%=rs(2).name%>_<%=rs("campoID")%>" cols="20" rows="10"><%=rs("campoTesto")%></textarea>
    </p>
    <%
    			rs.moveNext
    			loop
    %>
    <input type="submit" value="VAI">
    </form>
    <%
    		end if
    		
    	rs.close
    	set rs = nothing
    	
    conn.close
    set conn = nothing
    %>
    In questa pagina seleziono tutti i record della tabella "tabellaDati" e creo i campi form dando loro come nome una stringa composta da nomeCampo_valoreID.
    Il submit manda alla pagina updatedata.asp
    codice:
    <%
    set conn = server.createObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\database\test.mdb")
    
    	for each item in request.Form
    		if instr(item,"_") > 0 then
    		temp = split(item,"_")
    		fieldName = temp(0)
    		fieldName = replace(fieldName,"'","''")
    		idValue = temp(1)
    		fieldValue = request.form(item)
    		fieldValue = replace(fieldValue,"'","''")
    		sql = "UPDATE tabellaDati set " & fieldName & " = '" & fieldValue & "' WHERE campoID = " & idValue
    		conn.execute(sql)
    		end if
    	next
    	
    conn.close
    set conn = nothing
    response.redirect("showdata.asp")
    %>
    In questa pagina con un ciclo for leggo le voci presenti nella collection request.form. Ottenere il nome del campo è il valore id è molto facile. Basta fare lo split del valore item in base al carattere underscore _ . L'elemento 0 dell'array rappresentato dalla variabile temp corrisponde al nome campo della tabella del db, mentre l'elemento 1 rappresenta il valore id. Il testo digitato sta in request.form(item)
    A questo punto la query SQL verrà composta dinamicamente. fieldName rappresenta il nome del campo della tabella, idValue il valore ID del record da aggiornare, mentre fieldValue il testo digitato. Con questo sistema non si aggiornano i record aggiornando in blocco ogni singolo record, ma aggiornando ad uno ad uno ogni singolo campo.
    Nel mio esempio ho predisposto una tabella con 3 campi:
    campoID - contatore
    campoTitolo - testo
    campoTesto - memo
    Nella pagina showdata.asp ho previsto solo due campi FORM uno per campoTitolo e uno per campoTesto, prendendo i nomi dei campi mendiante rs(1).name e rs(2).name.
    Lo so che sembra complicato e macchinoso, ma penso che sia una soluzione molto pratica in fin dei conti.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    112
    sto provando, ma mi restituisce sempre l'errore di query non aggiornabile, in quanto non passa il valore dell'ID.

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.