Probleme de modification

Résolu/Fermé
Imelda24 - 17 janv. 2017 à 04:01
 Utilisateur anonyme - 18 janv. 2017 à 17:58
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

Utilisateur anonyme
17 janv. 2017 à 09:44
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
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
Utilisateur anonyme
17 janv. 2017 à 14:26
Et donc quels champs n'ont pas été modifiés?
0
Imelda24 > Utilisateur anonyme
17 janv. 2017 à 14:39
tous les champs
0
Utilisateur anonyme
17 janv. 2017 à 15:01
Oui mais ce que je comprend pas c'est ce que tu dit par "Sont pas modifiés"
0
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
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
Utilisateur anonyme
17 janv. 2017 à 16:05
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
Imelda24 > Utilisateur anonyme
17 janv. 2017 à 17:45
non c pas le probleme
0
Utilisateur anonyme
17 janv. 2017 à 18:12
Donc ça dois être une de tes valeurs qui n'est pas conforme.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Utilisateur anonyme
18 janv. 2017 à 17:58
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
merci pour ton attention.
0