Visualizzazione dei risultati da 1 a 5 su 5

Discussione: UPDATE via asp

  1. #1

    UPDATE via asp

    Ciao,
    sto cercando di creare una elementare piattaforma d'aggiornamento.

    Quello che segue è il codice che visualizza i campi da aggiornare (FORM):

    codice:
    <% 
    	citta = request.querystring("citta")
    	provincia = request.querystring("provincia")
    %>
    
    <%				
    	set rs = server.createobject("ADODB.Recordset")
    	if (provincia="perugia") then
    	database = "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.Mappath("/mdb-database/perugia.mdb")
    	else
    	database = "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.Mappath("/mdb-database/italia.mdb")	
    	end if
    	query = "select "&provincia&".* from "&provincia&" order by nome asc, cognome asc"
    	rs.open query,database
    	i = 0
    	do while (not rs.eof)
    	i=i+1
    %>
    <center>
    <form name="upd" method="post" action="upd.asp?citta=<%=citta%>&provincia=<%=provincia%>&id=<%=rs("id")%>">
    <input type="hidden" name="id" value="<%=rs("id")%>">
    
    	<label for="nome">nome: <font color='#808080'>(obbligatorio)</font></label>
    
    	<input value="<%=rs("nome")%>" type="text" name="nome" id="nome" size="20" maxlength="250">
    
    
    	<label for="cognome">cognome: <font color='#808080'>(obbligatorio)</font></label>
    
    	<input value="<%=rs("cognome")%>" type="text" name="cognome" id="cognome" size="20" maxlength="250">
    
    
    	<label for="numero">numero: <font color='#808080'>(obbligatorio)</font></label>
    
    	<input value="<%=rs("numero")%>" type="text" name="numero" id="numero" size="20" maxlength="250">
    
    	
    	<hr>
    </center>
    
    <%	
    	rs.movenext
    	loop
    	rs.close
    	set rs = nothing
    %>
    
    	
    <input type="submit" value="AGGIORNA!"></form>
    Questo è invece il codice di UPD.ASP

    codice:
    <%
    	citta = request.querystring("citta")
    	provincia = request.querystring("provincia")
    	
    set rs = Server.CreateObject("ADODB.Recordset")
    
    	if (provincia="perugia") then
    	database = "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.Mappath("/mdb-database/perugia.mdb")
    	else
    	database = "driver={Microsoft Access Driver (*.mdb)};dbq="&Server.Mappath("/mdb-database/italia.mdb")	
    	end if
    query = "UPDATE "&provincia&" SET [nome]='" &request.form("nome")& "', [cognome]=" &request.form("cognome")& ", [numero]=" &request.form("numero")& " where id=" &request.form("id")& ""
    rs.open query,database
    set rs = nothing
    url="upd.asp"
    Response.Redirect(url)
    %>
    I problemi principali sono 2:

    1) la visualizzazione dei form è tutto ok. quando tento d'aggiornare però mi restituisce "Syntax error in UPDATE statement."

    2) il codice che ho scritto mi permette d'aggiornare tutti i campi (nella visualizzazione c'è infatti un loop), oppure solo il primo nell'elenco?

    Spero possiate aiutarmi.

    Grazie mille e buona domenica

  2. #2
    Un altro errore ricorrente è "COUNT field incorrect"

  3. #3
    Ho momentaneamente risolto creando un botton submit per ogni serie di valori (nome, cognome, numero), e sistemando qualcosa nel codice.

    La DOMANDA adesso è: come creare un unico bottone che aggiorni TUTTE le serie di valori ottenute dal loop?

  4. #4
    Nella form:
    codice:
    <form method="post" action="pagina2.asp">
    <%
    do while not rs.eof
    %>
    <input type="hidden" name="id" value="<%=rs("id")%>" />
    <input type="text" name="nome_<%=rs("id")%>" value="<%=rs("nome")%>" />
    <input type="text" name="cognome_<%=rs("id")%>" value="<%=rs("cognome")%>" />
    <%
    rs.moveNext
    loop
    %>
    <input type="submit" value="aggiorna" />
    </form>
    nella pagina che aggiorna i dati:
    codice:
    <%
    id = request.form("id")
    id = replace(id," ","")
    id = split(id,",")
    for i = 0 to uBound(id)
    nome = request.form("nome_" & id(i))
    cognome = request.form("cognome_" & id(i))
    sql = "UPDATE tabella1 SET nome = '" & replace(nome,"'","''") & "', cognome = '" & replace(cognome,"'","''") & " WHERE [ID] = " & id(i)
    conn.execute(sql)
    next

  5. #5
    Grazie mille

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.