[PHP-MYSQL] Bug avec un UPDATE

Bug avec un UPDATE [PHP-MYSQL] - PHP - Programmation

Marsh Posté le 06-02-2006 à 09:50:55    

Hello,
j'ai modifié la version de php sur mon serveur et du coup j'ai eu les erreurs de variables nons déclarée, j'ai donc fait les modifs mais depuis toute modifications entraine un effacement (toutes les valeurs sont à zéro) de la ligne dans la BD.
Je ne code pas très souvent, je m'excuse d'avance des éventuelles fautes de syntaxe
voici le script qui est executé quand je soumet le formulaire de modification:

Citation :


<?
require("connect.php" );
 if ( !isset($_GET['N'])) {
   die("Fuck, ref $N non spécifié" );
} else {
   $N = $_GET['N'];
}
 if ( !isset($_GET['mois'])){
  $mois = date("m" );
 } else {
  $mois = $_GET['mois'];
 }
 if ( !isset($_GET['position'])){
  $position = 0;
 } else {
  $position = $_GET['position'];
 }
 if ( !isset($_GET['tri'])){
  $tri = "";
 } else {
  $tri= $_GET['tri'];
 }
 if ( !isset($_GET['order'])){
  $order = "DESC";
 } else {
  $order = $_GET['order'];
 }
//déclarations
if (!isset($N_Fiche_print)){ $N_Fiche_print = '0';}
if (!isset($Date_Ano_print)){ $Date_Ano_print = '0';}
if (!isset($Emetteur_print)){ $Emetteur_print = '0';}
if (!isset($Reçu_le_print)){ $Reçu_le_print = '0';}
if (!isset($Client_Nom_print)){ $Client_Nom_print = '0';}
if (!isset($Client_N_Cpte_print)){ $Client_N_Cpte_print = '0';}
if (!isset($RC_print)){ $RC_print = '0';}
if (!isset($NC_Interne_print)){ $NC_Interne_print = '0';}
if (!isset($Regul_Com_print)){ $Regul_Com_print = '0';}
if (!isset($Geste_Com_print)){ $Geste_Com_print = '0';}
if (!isset($SC_Sais_print)){ $SC_Sais_print = '0';}
if (!isset($SC_Traitement_print)){ $SC_Traitement_print = '0';}
if (!isset($Stock_Prepa_print)){ $Stock_Prepa_print = '0';}
if (!isset($Stock_Fact_print)){ $Stock_Fact_print = '0';}
if (!isset($Stock_Exp_print)){ $Stock_Exp_print = '0';}
if (!isset($Stock_Autre_print)){ $Stock_Autre_print = '0';}
if (!isset($Reception_print)){ $Reception_print = '0';}
if (!isset($Fdv_RMO_print)){ $Fdv_RMO_print = '0';}
if (!isset($Fdv_dealer_print)){ $Fdv_dealer_print = '0';}
if (!isset($Fdv_Achats_print)){ $Fdv_Achats_print = '0';}
if (!isset($Fdv_Presoud_print)){ $Fdv_Presoud_print = '0';}
if (!isset($Fdv_Rep_print)){ $Fdv_Rep_print = '0';}
if (!isset($NCF_print)){ $NCF_print = '0';}
if (!isset($Client_Erreur_print)){ $Client_Erreur_print = '0';}
if (!isset($Client_Autre_print)){ $Client_Autre_print = '0';}
if (!isset($Retour_Commande)){ $Retour_Commande = '0';}
if (!isset($Nvle_Commande)){ $Nvle_Commande = '0';}
if (!isset($N_Nvle_Commande)){ $N_Nvle_Commande = '0';}
if (!isset($Objet_print)){ $Objet_print = '0';}
if (!isset($AC_print)){ $AC_print = '0';}
if (!isset($Soldes_print)){ $Soldes_print = '0';}
if (!isset($msg)){ $msg = '0';}
 
//sauvegarde des modifications
$sql = "UPDATE anomalie set N_Fiche ='$N_Fiche_print',Date_Ano = '$Date_Ano_print' ,Emetteur='$Emetteur_print' ,Reçu_le = '$Reçu_le_print',Client_Nom='$Client_Nom_print', Client_N_Cpte = '$Client_N_Cpte_print', RC = '$RC_print',NC_Interne = '$NC_Interne_print', Regul_Com = '$Regul_Com_print', Geste_Com = '$Geste_Com_print', SC_Sais = '$SC_Sais_print',SC_Traitement= '$SC_Traitement_print',Stock_Prepa= '$Stock_Prepa_print',Stock_Fact= '$Stock_Fact_print',Stock_Exp= '$Stock_Exp_print',Stock_Autre= '$Stock_Autre_print',Reception = '$Reception_print', Fdv_RMO= '$Fdv_RMO_print',Fdv_dealer= '$Fdv_dealer_print',Fdv_Achats= '$Fdv_Achats_print',Fdv_Presoud= '$Fdv_Presoud_print',Fdv_Rep= '$Fdv_Rep_print',NCF= '$NCF_print',Client_Erreur= '$Client_Erreur_print',Client_Autre= '$Client_Autre_print',Retour_Commande='$Retour_Commande',Nvle_Commande = '$Nvle_Commande',N_Nvle_Commande='$N_Nvle_Commande',Objet= '$Objet_print',AC= '$AC_print',Soldes= '$Soldes_print' WHERE N='$N' " ;
mysql_query($sql);
 
header("Location:index.php?tri=$tri&msg=Ligne modifiée" );
?>


Message édité par gaetan7 le 06-02-2006 à 09:51:18
Reply

Marsh Posté le 06-02-2006 à 09:50:55   

Reply

Marsh Posté le 06-02-2006 à 10:15:56    

Huum tu as du passer d'une version de php avec 'register_globals' à une version sans.
Du coup tous tes tests "isset" foirent et tu initialises toutes tes variables à 0.
 
Solution: utilisé $_GET comme tu le fais pour les premières variables.

Reply

Marsh Posté le 06-02-2006 à 10:52:07    

je le fais, mais j'ai tjrs des valeurs à zéro dans ma ligne :(

Reply

Marsh Posté le 07-02-2006 à 14:37:09    

3 choses :
 
1 - utilise la concaténation dans tes chaines , c'est plus rigoureux...
2 - pour le header utilise urlencode() , certaines fonctions sont faites pour etre utilisées ;)
3 - Pour ton problème , vois ce que t'affiche le code :

Code :
  1. echo var_dump($_GET);


Pour une validation de formulaire par methode get

Code :
  1. echo var_dump($_POST);


Pour une validation de formulaire par methode post
 
Histoire de voir si tu récupère bien toutes tes données :)


Message édité par the_bigboo le 07-02-2006 à 14:38:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed