Probleme de modification

Résolu
Imelda24 -  
 Utilisateur anonyme -
Bonsoir,

j'ai ce code :

<?php
include_once("connexin_ba.php") ;

if(isset($_POST['enregistrer']) && isset ($_POST['Departement'])&& isset ($_POST['Poste']) && isset ($_POST['Marque']) && isset ($_POST['No_Serie']) && isset ($_POST['Fonction']) ){

$Departement=$_POST['Departement'];
$Poste=$_POST['Poste'];
$Marque= $_POST['Marque'];
$No_Serie= $_POST['No_Serie'];
$Fonction= $_POST['Fonction'];

$sql = 'UPDATE Imp set Departement=nvDepartement, Poste=nvPoste, Marque=nvMarque, No_Serie=nvNo_Serie,Fonction=nvFonction WHERE id_imp=$id_imp';

$params =array('nvDepartement'=>$Departement, 'nvPoste'=> $Poste ,'nvMarque'=>$Marque,'nvNo_Serie'=> $No_Serie,'nvFonction'=> $Fonction );

$stmt= sqlsrv_query( $conn, $sql, $params);

header('Location: affichage_i.php');

sqlsrv_free_stmt($stmt);
?>

apres la modification quand je clic sur enregistrer je retourne sur la page d'affichage comme demandé mais les champs n'ont pas été modifié. je vois pas l'erreur, j'aimerais avoir un peu d'aide svp.

6 réponses

  1. Utilisateur anonyme
     
    Tu veux dire quoi par les champs n'ont pas été modifiés? Et utilise la balise code pour que ça soit lisible sur le forum.
    0
  2. Imelda24
     
    Bonjour,

    oui c'est le cas.

    <? php
             include_once("connexin_ba.php");
             if(isset($_POST['enregistrer']) && isset ($_POST['Departement']) 
             && isset($_POST['Poste']) && isset ($_POST['Marque'])
             && isset ($_POST['No_Serie']) && isset ($_POST['Fonction']) 
             {
    
    
                  $Departement=$_POST['Departement'];
                  $Poste=$_POST['Poste'];
                  $Marque= $_POST['Marque'];
                  $No_Serie= $_POST['No_Serie'];
                  $Fonction= $_POST['Fonction'];
       
                  $sql='UPDATE Imprimantes set Departement=nvDepartement, 
                          Poste=nvPoste, Marque=nvMarque, No_Serie=nvNo_Serie,
                          Fonction=nvFonction  WHERE id_imp=$id_imp';
       
    
                  $params=array('nvDepartement'=>$Departement,
                                          'nvPoste'=> $Poste ,
                                          'nvMarque'=>$Marque,
                                          'nvNo_Serie'=> $No_Serie,
                                          'nvFonction'=> $Fonction );
      
    
                  $stmt= sqlsrv_query( $conn, $sql, $params);
                
                  header('Location: affichage_i.php');
          
                  sqlsrv_free_stmt($stmt);
             }
    
    ?>
    0
    1. Utilisateur anonyme
       
      Et donc quels champs n'ont pas été modifiés?
      0
      1. Imelda24 > Utilisateur anonyme
         
        tous les champs
        0
    2. Utilisateur anonyme
       
      Oui mais ce que je comprend pas c'est ce que tu dit par "Sont pas modifiés"
      0
  3. Imelda24
     
    pendant l'insertion j'ai mis comme comme # de serie XXXXXX
    et j'aimerais porter une modification YYYYYYY quand je clic j'enregistre c toujours XXXXX qui est dans le champs de # de serie. la modification n'est pas faite. je ne vois pas ou est le probleme dans le code.
    0
  4. Imelda24
     
    si je remplace ce bout de code :

    <?php
                 $sql='UPDATE Imprimantes set Departement=nvDepartement, 
                          Poste=nvPoste, Marque=nvMarque, No_Serie=nvNo_Serie,
                          Fonction=nvFonction  WHERE id_imp=$id_imp';
       
    
                  $params=array('nvDepartement'=>$Departement,
                                          'nvPoste'=> $Poste ,
                                          'nvMarque'=>$Marque,
                                          'nvNo_Serie'=> $No_Serie,
                                          'nvFonction'=> $Fonction );
      
    
                  $stmt= sqlsrv_query( $conn, $sql, $params);
    
    ?>


    par :

    <?php
    
      $sql = sqlsrv_prepare('UPDATE Imprimantes set    Departement=nvDepartement, Poste=nvPoste, Marque=nvMarque, No_Serie=nvNo_Serie,  Fonction=nvFonction  WHERE id_imp=$id_imp');
    
    
        $params =sqlsrv_execute(array('nvDepartement'=>$Departement,        'nvPoste'=> $Poste ,'nvMarque'=> $Marque,'nvNo_Serie'=> $No_Serie,'nvFonction'=> $Fonction ));
    
         $stmt = sqlsrv_query( $conn, $sql, $params);
         if( $stmt === false ) {
         die( print_r( sqlsrv_errors(), true));
    }
    ?>


    g c message d'erreur:

    Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -14 [code] => -14 [2] => An invalid parameter was passed to sqlsrv_query. [message] => An invalid parameter was passed to sqlsrv_query. ) )
    0
    1. Utilisateur anonyme
       
      Je crois que ça viens de ta variable $id_imp elle ne passe pas, il faut utiliser des doubles quote (") et non des simple (')
      0
      1. Imelda24 > Utilisateur anonyme
         
        non c pas le probleme
        0
    2. Utilisateur anonyme
       
      Donc ça dois être une de tes valeurs qui n'est pas conforme.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Imelda24
     
    Bonjour,

    j'ai fait quelque ptit changement dans le code et enfin ca fonctionne.

    <?php 
         include_once("connexin_ba.php") ;
    
         if(isset($_POST['enregistrer'])) {
    
         $id_imp=$_POST['id_imp'];
         $Departement =$_POST['Departement'];
         $Poste=$_POST['Poste'];
         $Marque=$_POST['Marque'];
         $No_Serie=$_POST['No_Serie'];
             $Fonction=$_POST['Fonction'];
    
         $req= "UPDATE Imprimantes set Departement='$Departement',                          Poste='$Poste', Marque='$Marque', No_Serie='$No_Serie',   Fonction='$Fonction' WHERE id_imp=$id_imp ";
    
         $params = array($Departement,$Poste,$Marque,$No_Serie, $Fonction);
    
            $stmt = sqlsrv_query( $conn, $req, $params);
            if( $stmt === false ) {
                 die( print_r( sqlsrv_errors(), true));
            }
    
          header("Location: afFichage_i.php");
    
    }
    
    
    
    ?>
    0
    1. Utilisateur anonyme
       
      Du coup ta variable params ne sert à rien vu que tu met les variables directement dans la requête. et oui tu avait bien un problème de quote au final.
      0