Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Inserire modifiche in una tabella del database

    Buongiorno,
    vi scrivo per chiedervi un consiglio.
    Ho una pagina web che mostra in forma tabellare,dopo aver effettuato una ricerca, dei record contenuti in un database access.
    In questa tabella ci sono due campi "quantity" e "reso" che sono modificabili dall'utente che utlizza il sito.
    Io vorrei che quando quest'ultimo inserisce dei valori in quantity o reso e clicca il tasto conferma in basso alla pagina, le modifiche che ha effettuato vengano inserite in una tabella sul database. Sapreste darmi qualche consiglio??Vi posto il codice che utilizzo cosicché se non mi sono spiegato abbastanza bene capiate..(ho escluso tutto il sorgente riguardo la ricerca sennò veniva lunghetto il codice)
    codice:
    	<table class="result">
    		<tr>
            	<th width="7%">Foto</th>
    		<th width="7%">Codice</th>
                    <th width="7%">codupc</th>
                    <th width="8%">Categoria</th>
    	  	<th width="55%">Descrizione</th>
                    <th width="6%">prezzo</th>
                    <th width="8%">Quantità</th>
                    <th width="8%">Reso</th>
    		</tr>
    	<%
    	do while not rs.EOF
    		if classPd = "odd"  then
    			classPd = "even"
    		else
    			classPd = "odd"
    		end if
    	%>	
    		<tr>
            	<form action="movimenti.asp" method="POST" name="invia">
            	<td class="<%=classPd%>"><center>.jpg" class="screenshot" rel="http://192.168.1.101/mag/mag/FOTO/<%=rs("codProduct")%>.jpg">_th.jpg"  height="100" alt="" title="" /></td>
    		<td class="<%=classPd%>"><center><%=rs("codProduct")%></td>
                    <td class="<%=classPd%>"><center><%=rs("codupc")%></td>
                    <td class="<%=classPd%>"><center><%=rs("category")%></td>
    		<td class="<%=classPd%>"><center><%=rs("product")%></td>
                    <td class="<%=classPd%>" align="center">€ <%=formatNumber(rs("price"))%></td>
                    <td class="<%=classPd%>"><div align="right"><input type="number" name="quantity" value="0"></div></td>
                    <td class="<%=classPd%>"><div align="right"><input type="number" name="reso" value="0"></div></td>
    		</tr> 
        <%	
    	rs.MoveNext 
    	loop
    	rs.Close 
    	set rs = nothing
    	%>
    	</table>
        
    </br>
        
    </br>
    <div align="right"><input type="submit" name="invia" value="Conferma" class="cr" style="height: 35px; width: 100px; border: 1px solid #999999 "></form></div>
    Grazie mille,
    Manuel

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    a parte i tanti errori di marcatura, dove ti sei arenato?

  3. #3
    Originariamente inviato da Vincent.Zeno
    a parte i tanti errori di marcatura, dove ti sei arenato?
    in pratica ho creato la pagina movimenti.asp ma è un disastro..

    posto il codice

    codice:
    <%
    dim nutente
    nutente=session("username")
     Dim Conn
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.Mappath("../mdb-database/mag.mdb")
      Conn.Open
    
    	sql = "SELECT * FROM movimenti"
    	Set rs = Server.CreateObject("ADODB.Recordset")
    
    	rs.Open sql, conn ,3,3
    
    	rs.addnew
    		rs(0)=codproduct
    		rs(1)=request.form("quantity")
    		rs(2)=request.form("reso")
    		rs(3)=nutente
    		rs.update
    	rs.Close
    	set rs = nothing
    	Conn.Close
    %>
    così facendo nel database registra una sola riga dove passa "NUTENTE" in modo corretto , "codproduct" rimane vuoto e "quantity" e "reso" vengono registrati tutti quanti i dati della tabella in un unico campo ( es. quantity = 0,1,2,3,4,3,2,4,5,ecc.. reso=0,2,3,5,3,2,4,5,ecc..)
    Dove sbaglio??

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    non seguo bene...

    nutente è valorizzato da session("username")
    invece non c'è niente che valorizza codproduct

    procedi per gradi: stampa a video tutti i dati che ricevi da form e sessioni e vedi se sono corretti.

    occupati dopo di inserirsi

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Hai n campi nel form con lo stesso nome... e' ovvio che ti vengano inviati tutti i valori in una unica stringa e separati da virgole... i name dei campi del form devono essere univoci per poter arrivare separati al server.

    qui c'e' un suggerimento per lo stesso problema.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    siete dei geni!!ora va tutto come dovrebbe!!
    ho strutturato la default.asp così:
    codice:
    <form action="movimenti.asp" method="POST" name="invia">
            	<td class="<%=classPd%>"><center>.jpg" class="screenshot" rel="http://192.168.1.101/mag/mag/FOTO/<%=rs("codProduct")%>.jpg">_th.jpg"  height="100" alt="" title="" /></td>
    			<td class="<%=classPd%>"><center><input name="referenza_<%=contatore%>" value="<%=rs("codProduct")%>" readonly ></td>
                <td class="<%=classPd%>"><center><%=rs("codupc")%></td>
                <td class="<%=classPd%>"><center><%=rs("category")%></td>
    			<td class="<%=classPd%>"><center><%=rs("product")%></td>
                <td class="<%=classPd%>" align="center">€ <%=formatNumber(rs("price"))%></td>
                <td class="<%=classPd%>"><div align="right"><input type="number" name="quantity_<%=contatore%>" value="0"></div></td>
                <td class="<%=classPd%>"><div align="right"><input type="number" name="reso_<%=contatore%>" value="0"></div></td>
    		</tr> 
        <%	
    	rs.MoveNext
    	contatore=contatore+1 
    	loop
    	rs.Close 
    	set rs = nothing
    	%>
    	</table>
        
    </br>
        
    </br>
    <div align="right"><input type="submit" name="invia" value="Conferma" class="cr" style="height: 35px; width: 100px; border: 1px solid #999999 "></form>
    mentre la movimenti.asp

    codice:
    <%
    dim nutente,contatore
    contatore=0
    nutente=session("username")
     Dim Conn
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.Mappath("../mdb-database/mag.mdb")
      Conn.Open
    
    	sql = "SELECT * FROM movimenti"
    	Set rs = Server.CreateObject("ADODB.Recordset")
    
    	rs.Open sql, conn ,3,3
    
    DO
    	rs.addnew
    			rs(0)=request.form("referenza_"&contatore)
    		 	rs(1)=request.form("quantity_"&contatore)
    		    rs(2)=request.form("reso_"&contatore)
    		 	rs(3)=nutente
    		    rs.update
    			contatore=contatore+1
    LOOP WHILE contatore<10
    	rs.Close
    	set rs = nothing
    	Conn.Close
    	response.redirect("../mag/default.asp?insert=ok")
    %>
    Un ultimo appunto su cui mi sto scervellando,come potrete vedere mi registra solo i primi 10 record perchè metto contatore<10..per mettere nella condizione il numero massimo che il contatore ha raggiunto nella default come faccio???Grazie mille,

    Manuel

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi passare il valore del contatore come campo HIDDEN del form.
    Recuperarlo nell'altra pagina ed usarlo nella condizione.

    Roby

  8. #8
    Originariamente inviato da Roby_72
    Devi passare il valore del contatore come campo HIDDEN del form.
    Recuperarlo nell'altra pagina ed usarlo nella condizione.

    Roby
    ok ho messo
    codice:
    <input type="number" name="conta_<%=contatore%>" value="1" hidden=""
    e il LOOP fino a quando request.form("conta_"&contatore)=1 e va tutto come dovrebbe!!!
    Grazie mille ragazzi!

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.