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

    Errore aggiornamento record

    Salve, utilizzo php+mssql ed mi è capitato di avere problemi nell'aggiornare alcuni record di una tabella, questo mi capita da quando ho inserito un'altra colonna alla tabella presa in esame.
    vi posto anche il codice
    Codice PHP:
    //file: formParametri.php
                            .........................................
                            <form name="bachecaParametri" action="parametri.php" method="POST">
                            <table border="0">
                              
                                <tr>
                                    <td class="formLeft">parametro 1:</td>
                                    <td>...</td>
                                    <td><input type="text" name="par1UTI" size="3" value="<?=$config[PAR1U]?>"/></td>
                                    <td></td>
                                                     
                                </tr>
                    
                                <tr><td class="formLeft">parametro 2:</td>
                                    <td>Le iscrizioni ai corsi di questa sezione scadranno nei prossimi </td>
                                    <td><input type="text" name="par2UTI" size="3" value="<?=$config[PAR2U]?>"/></td>
                                    <td></td>
                                               
                                </tr>
                    
                                <tr><td class="formLeft">parametro 3</td>
                                    <td>..</td>
                                    <td><input type="text" name="par3UTI" size="3" value="<?=$config[PAR3U]?>"/></td>
                                    <td></td>
                                                   
                                </tr>
                                .....................
                            </table>
                            </form>
    //fine
    //file: parametri.php

    require_once("formParametri.php");
    if(!array_key_exists('aggiorna', $_POST)){
        $config = getParametri();
        showParametri($config);
    }else{
        $config[PAR1U] = $_POST['par1UTI'];
        $config[PAR2U] = $_POST['par2UTI'];
        $config[PAR3U] = $_POST['par3UTI']; 
        $config[PAR4U] = $_POST['par4UTI'];
        $config[PAR5U] = $_POST['par5UTI'];
        $config[PAR6U] = $_POST['par6UTI'];
        $config[PAR1A] = $_POST['par1ATI'];
        $config[PAR1D] = $_POST['par1DTI'];
        $config[PAR2D] = $_POST['par2DTI'];

        $errore= controllaParametri($config);
        
        if($errore != ""){ // errore nel form
            showParametri($config, $errore);
        }    
        else{
            
            $result = aggParametri($config);

            if($result == 2){ //l'aggiornamento ha avuto successo
                $msg = "I parametri sono stati configurati correttamente, puoi tornare alla <a href=\"home.php\">home</a>";
                showParametri($config, $msg);
            }elseif($result == 1){ // errore nella query
                showParametri($config, $QUERY_ERROR);        
            }else{ // altri errori       
                showParametri($config, $QUERY_ERROR);
            }
        }       
    }

    function controllaParametri($config){
        
        $errore = "";
        
        for($i=0; $i<count($config); $i++)
            var_dump($i);
             if( || $config[$i] == "" || !is_numeric($config[$i]) || $config[$i]<0 || $config[$i]>365){
                $errore = "ERRORE! Impostare i parametri in maniera corretta (inserire valore numerici positivi)";
                return $errore;
            }
    }

    function getParametri(){...}
    function aggParametri($config){...}

  2. #2
    No te entiendo
    Non si vede il codice di update....
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  3. #3
    scusa, hai ragione, non l'ho postato perchè l'errore lo da nella funzione di controllo; la funzione aggParametri funziona normalmente se elimino il controllo controllaParametri($config). L'errore che mi da è quello di non riconoscere il valore inserito nel form come un numero (infatti nella if($config[$i] == ""
    || !is_numeric($config[$i])
    || $config[$i]<0
    || $config[$i]>365) i primi due controlli non passano come se il valore non sia un numero oppure il campo è vuoto, questo solo per alcuni campi che a volte non sono sempre gli stessi, per es. a volte l'errore lo da in $config[PAR1U] altre volte in $config[PAR3U] ecc senza alcuna logica in particolare, perchè i valori passati sono dei numeri)

    Codice PHP:
    function aggParametri($config){
        
        
    $sql " UPDATE F_configParams SET ".
               
    "  par1U = ".$config[PAR1U].
               
    ", par2U = ".$config[PAR2U].
               
    ", par3U = ".$config[PAR3U].
               
    ", par4U = ".$config[PAR4U].
               
    ", par5U = ".$config[PAR5U].
               
    ", par6U = ".$config[PAR6U].
               
    ", par1D = ".$config[PAR1D].
               
    ", par2D = ".$config[PAR2D].
               
    ", par1A = ".$config[PAR1A];
        
        
    connectDBMS();
        
        
    $ris mssql_query($sql);
        
        if(
    $ris==FALSE){
            
    closeDBMS();
            return(
    1); // errore nell'esecuzione della query
        
    }            
            
        
    closeDBMS();   
            
        return(
    2);

    P.S. la funzione di controllaParametri($config) ha l'errore di trascrizione || $config[$i] == ""

  4. #4
    NO TE ENTIENDO
    non ti sei fatto spiegare bene e non posso aiutarti.......
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  5. #5
    scusa ancora per la mia non chiarezza ,vedo di spiegarlo un po meglio.
    Ho una pagina che mi permette di modificare i record di una tabella, il problema sta nel fatto che quando tento di modificare questi valori tramite il form mi da $errore nell'if della funzione controllaParametri($config).
    Questo è dovuto al fatto che i valori che gli passo o non sono numeri(!is_numeric($config[$i])) oppure è vuota ($config[$i]==""), mentre se tolgo queste due condizioni funziona. Ora quello che mi domando è perchè queste due condizioni vengono verificate se io tramite il form (parametri.php) inserisco dei numeri validi, non vuoti e compresi tra 0 e 365?
    Se ti è possibile puoi dirmi cosa hai capito?
    Grazie ancora

  6. #6
    Buongiorno, ieri sono andato via prima per andare a prendere mia figlia.
    Allora il problema è dell'IF, giusto?
    ..:: GSFLASH ::..
    HTTP://WWW.GSFLASH.IT
    MCTS - ACP - OCP - ECDL
    Ubuntu 7.10/OpenSuse 10.3/Vista Premium/MacOSX Leopard
    My authentic japanese name is 薗田Sonoda (garden field) 大河 Taiga (big river)

  7. #7
    si, il problema è nell'if ed in particolare le prime due condizioni.

  8. #8
    Quello che non capisco è perchè l'IF non riconosce come numero i dati che passo tramite il form

    ciao

  9. #9
    Problema risolto....
    dopo un po di notti insonne, ho risolto.
    Il problema stava nel for

    Come chiudo la discussione???

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 © 2024 vBulletin Solutions, Inc. All rights reserved.