Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84

    Aggiornamento dati in tabelle MySql

    Ciao a tutti ,
    Ho bisogno di aggiornare i dati nel mio db MySql.
    Praticamente ho delle tabelle in cui sarà possibile modificare il contenuto delle varie caselline e nello stesso tempo, quindi , aggiornare il db col nuovo contenuto...
    Ho una funzione che passa parametro ad una servlet ma sembra che non funziona:
    Queste sono le funzioni nel mio script Js
    codice:
    function editTable(id,valore){
            var url = "../ModificaPersonaAttivitaServlet?";
            url += "type=perso_atti&value1=" + id+"&value2="+valore;
            xmlhttp4.onreadystatechange = handlerForEdit;
            xmlhttp4.open("GET", url);
            xmlhttp4.send("");
    
        }
    
    
    function handlerForEdit(){
    
        if (xmlhttp4.readyState == 4 && xmlhttp4.status == 200) {
                var jsonObject = eval('(' + xmlhttp4.responseText + ')');
    
        }
        }
    e questa è la mia servelt:
    codice:
    @WebServlet("/modificaPersonaAttivitaServlet")
        public class ModificaPersonaAttivitaServlet extends HttpServlet
        {
            private static final long serialVersionUID = 1L;
    
            private final String TYPE_OF_REQUEST = "type";
    
            private final String personaattività_TYPE = "perso_atti";
    
            private final String SELECT_VALUE_KEY1 = "value1";
            private final String SELECT_VALUE_KEY2 = "value2";
    
            /**
             * @see HttpServlet#HttpServlet()
             */
            public ModificaPersonaAttivitaServlet()
            {
                super();
            }
    
            /**
             * @see HttpServlet#doGet(HttpServletRequest request,         HttpServletResponse response)
             */
            protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
            {
                String type = request.getParameter(TYPE_OF_REQUEST);
                response.setContentType("application/json");
                response.setHeader("Cache-Control", "no-cache");
    
                if (personaattività_TYPE.equals(type))
                {
                    String id = request.getParameter(SELECT_VALUE_KEY1);
    
                    String ore=request.getParameter(SELECT_VALUE_KEY2);
                    Connection connection = null;
                    try {
                        connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","wxkj32skapi");
                    } catch (SQLException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                    try
                    {
                        Statement pst2= (Statement) connection.createStatement();
                        String query="UPDATE personaattività SET NumeroOre="+ore+" WHERE ID_personaattività=" + id ;
                        pst2.executeUpdate(query);
    
                    }
                    catch (SQLException e)
                    {
    
                        e.printStackTrace();
                    }
                    catch (IllegalArgumentException e)
                    {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
    
                }
    
            }
    
            /**
             * @see HttpServlet#doPost(HttpServletRequest request,         HttpServletResponse response)
             */
            protected void doPost(HttpServletRequest request,         HttpServletResponse response) throws ServletException, IOException
            {
                // TODO Auto-generated method stub
            }
    
        }
    chi può darmi dei suggerimenti?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Ciao user1989 ,
    Innanzi tutto dovresti chiarire cos è che non funziona, perché se non si tratta della stringa query credo tu sia nella sezione sbagliata.

    In ogni caso, parlando dellla stringa query, scusa se mi permetto ma davvero hai usato un carattere accentato nel nome di una tabella ed anche nel nome di un campo?

    Suggerimenti:
    1) elimina TUTTI i caratteri accentati dal DB (ovviamente parlo dei dati identificativi non dei valori anche se pure lì creano problemi);
    2) prova la query manualmente e vedi se il risultato è corretto.

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    84
    Quote Originariamente inviata da genespos Visualizza il messaggio
    Ciao user1989 ,
    Innanzi tutto dovresti chiarire cos è che non funziona, perché se non si tratta della stringa query credo tu sia nella sezione sbagliata.

    In ogni caso, parlando dellla stringa query, scusa se mi permetto ma davvero hai usato un carattere accentato nel nome di una tabella ed anche nel nome di un campo?

    Suggerimenti:
    1) elimina TUTTI i caratteri accentati dal DB (ovviamente parlo dei dati identificativi non dei valori anche se pure lì creano problemi);
    2) prova la query manualmente e vedi se il risultato è corretto.

    Ciao
    Buongiorno, rigrazio per la risposta.
    A parte il discorso degli accenti che sistemerò in seguito, avrei necessità di risolvere il problema dell'aggiornamento.
    Il problema è il seguente: il dato NON VIENE AGGIORNATO.
    Pertanto riesce a farmi capire in quale funzione c'è l'errore?

    Grazie mille...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Come già detto, se il problema deriva dal codice e non dalla query, non credo che sia la sezione giusta (e comunque non saprei aiutarti sul punto).
    Quindi dovresti verificare se la inviando il comando SQL al database viene regolarmente eseguito oppure no e (ovviamente) postare il comando che non funziona.

  5. #5
    1. controlla che il programma entri davvero nella doGet
    2. sempre nella doGet controlla che le variabili id e query siano corrette

    curiosità: non conosco quel linguaggio, l'aggiornamento lo fai in get? non dovresti farlo in post?

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.