Double insertion dans la base MySql sous IE
Résolu/Fermé
A voir également:
- Double insertion dans la base MySql sous IE
- Double ecran - Guide
- Whatsapp double sim - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
- Insertion sommaire word - Guide
1 réponse
Tantor8
Messages postés
46
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
9 janvier 2009
2
21 mai 2008 à 15:34
21 mai 2008 à 15:34
Re,
j'ajoute mon code pour les courageux cela aidera peut-être à la compréhension:
Pendant que j'y suis, si vous savez comment faire des scrolbarlorsqu'on insère du code dans ce forum, meric de me le faire savoir.
Merci de votre aide.
j'ajoute mon code pour les courageux cela aidera peut-être à la compréhension:
<?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Document sans titre</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <LINK REL=stylesheet HREF='style.css' TYPE='text/css'> <script language='javascript' type="text/javascript"> <!-- function valider(){ alert("valider"); document.form.action="enregistre_prepa.php"; document.form.submit(); } --> </script> </head> <body onload="document.form.valid.focus()"> <form name="form" method="post" enctype="multipart/form-data"> <?php if (isset($_SESSION['identification'])){ if($_SESSION['fonction']=="gestion_commandes.php"){ $stock=$_SESSION['stock']; require_once ("connect.php"); require_once ("connexion.php"); require_once ("ExecRequete.php"); $connexion = Connexion (NOM, PASSE, BASE, SERVEUR); /*soit on a le code barre soit le code article*/ if ((isset($_POST['code_article'])&& $_POST['code_article']!="")||(isset($_SESSION['article'])&&$_SESSION['article']!="")){ if(isset($_POST['code_article'])){ $code_article="".$_POST['code_article']; $_SESSION['article']=$code_article; }else{ $code_article=$_SESSION['article']; } $requete="SELECT * FROM article WHERE Code_article = '$code_article'"; /*On prépare déjà la requete d'update qui sera utiliser plus tard*/ $finreq="Code_article = '$code_article'"; }else{ if(isset($_POST['code_barre'])&&$_POST['code_barre']!=""){ $code_barre="".$_POST['code_barre']; $_SESSION['code_barre']=$code_barre; }else{ $code_barre=$_SESSION['code_barre']; } $requete="SELECT * FROM article WHERE Code_barre ='$code_barre'"; $finreq="Code_barre ='$code_barre'"; } if(isset($_POST['quantite'])){ $_SESSION['quantite']=$_POST['quantite']; } $quantite=$_SESSION['quantite']; $resultat=ExecRequete($requete, $connexion); $tab=array(); $tab=mysql_fetch_assoc($resultat); if($tab!=null){ $stock_emp=$tab[$_SESSION['stock']]; print_r($stock_emp); $tab_emp=array(); $tab_emp=explode("||",$stock_emp); print_r($tab_emp); $nb_emp=count($tab_emp); if($nb_emp>1&&!isset($_POST['emplacement'])){ /*s'il y a plus d'un emplacement on laisse le choix*/ ?> <table border="0" cellpadding="0" cellspacing="0" width="98%" onload="valid.focus()"> <tr> <td colspan='3' height="35" align="center" bgcolor="#CCCCCC"><span class="tittrefen"> Choix de l'emplacement</span></td> </tr> <tr><td width="20%" height="35" align="right" bgcolor="#CCCCCC"> <select class="textefiche3" name="emplacement" size="1" style="background-color:#FFFF55"> <?php for($i=0;$i<$nb_emp;$i++){ if(isset($tab_emp[$i])){ $tab_emp2[$i]=explode("$*",$tab_emp[$i]); ?> <OPTION value=<?php echo $tab_emp[$i];?> ><?php echo $tab_emp2[$i][0];?></OPTION> <?php } }?> </select> </td><td width="5%" height="35" bgcolor="#CCCCCC"> </td><td width="20%" height="35" align="left" bgcolor="#CCCCCC"> <input id="valid" name="valid" type="submit" onClick="valider()" value="Valider"> </td></tr> </table> <?php }else{ if(isset($_POST['emplacement'])){ $emp=$_POST['emplacement']; echo "<script>alert(\"post $emp\");</script>" ; }else{ $emp=$stock_emp; echo "<script>alert(\"session $emp\");</script>" ; } $res=""; /*on enlève la quantité nécéssaire à la commande*/ for($i=0;$i<$nb_emp;$i++){ echo "<script>alert(\"dans for $tab_emp[$i] -- $emp\");</script>" ; if(strcmp($tab_emp[$i],$emp)==0){ echo "<script>alert(\"dans if\");</script>" ; $tab_emp2=explode("$*",$tab_emp[$i]); /*si le stock existe*/ if($tab_emp2[0]!=""){ /*si la quantité déplacée est supérieur à la quantité en stock on déplace uniquement ce que contient le stock*/ if($quantite>$tab_emp2[1]){ $quantite=$tab_emp2[1]; if($quantite!='0'&&$quantite!=""){ echo "<script>alert(\"La quantité désirée est indisponible en stock. Nouvelle quantité:'$quantite' \")</script>"; }else{ echo "<script>alert(\"Le stock est épuisé\")</script>"; } } echo "<script>alert(\"modif\");</script>" ; /*on fait la modif de valeur*/ $tab_emp2[1]=$tab_emp2[1]-$quantite; $tab_emp[$i]=$tab_emp2[0]."$*".$tab_emp2[1]; }else{ $quantite='0'; echo "<script>alert(\"Stock inexistant\")</script>"; } } if($i!=0){ $res.="||"; } $res.=$tab_emp[$i]; echo "<script>alert(\"fin for $tab_emp[$i] -- $emp\");</script>" ; } if($quantite!='0'){ /*on utilise la variable finreq creer au début*/ if(isset($emp)){ //echo "<script>alert(\"req: UPDATE article SET $stock = '$res' WHERE $finreq\");</script>" ; $requete="UPDATE article SET $stock = '$res' WHERE $finreq"; ExecRequete ($requete, $connexion); } /*on référence le mouvement dans l'historique*/ $ID_emp=$_SESSION['ID']; $id_article=$tab['ID_article']; $time=time(); $quantite_gstock=0; $Emplacement_Gstock=$tab['Emplacement_Gstock']; $tmp_gstock=explode("||",$Emplacement_Gstock); $nb_gstock=count($tmp_gstock); $tab_gstock=array(); for($i=0;$i<$nb_gstock;$i++){ $tab_gstock[$i]=explode("$*",$tmp_gstock[$i]); if(isset($tab_gstock[$i][1])){ $quantite_gstock+=$tab_gstock[$i][1]; } } $quantite_web=0; $Emplacement_web=$tab['Emplacement_web']; $tmp_web=explode("||",$Emplacement_web); $nb_web=count($tmp_web); $tab_web=array(); for($i=0;$i<$nb_web;$i++){ $tab_web[$i]=explode("$*",$tmp_web[$i]); if(isset($tab_web[$i][1])){ $quantite_web+=$tab_web[$i][1]; } } $quantite_picking=0; $Emplacement_picking=$tab['Emplacement_picking']; $tmp_picking=explode("||",$Emplacement_picking); $nb_picking=count($tmp_picking); $tab_picking=array(); for($i=0;$i<$nb_picking;$i++){ $tab_picking[$i]=explode("$*",$tmp_picking[$i]); if(isset($tab_picking[$i][1])){ $quantite_picking+=$tab_picking[$i][1]; } } switch ($stock){ case 'Emplacement_picking': $quantite_picking-=$quantite; break; case 'Emplacement_web': $quantite_web-=$quantite; break; case 'Emplacement_Gstock': $quantite_gstock-=$quantite; break; } /*7 car on déstock echo "<script>alert(\"insert histo\");</script>" ;*/ $requete = "INSERT INTO historique values('','$time','7','$ID_emp','$quantite_picking','$quantite_web','$quantite_gstock','$id_article')"; $resultat = ExecRequete ($requete, $connexion); /*on modifi le tableau des données saisie*/ $tabS=array(); $tabS[0]=$tab['Code_article']; $tabS[1]=$tab['Designation_A']; $tabS[2]=$tab_emp2[0]; $tabS[3]=$quantite; $nb_saisie=count($_SESSION['tabSaisie']); $tab_saisie=$_SESSION['tabSaisie']; $tab_saisie[$nb_saisie]=$tabS; $_SESSION['tabSaisie']=$tab_saisie; /*if(!isset($_POST['code_barre'])){ if(isset($_SESSION['code_barre']))$_SESSION['code_barre']=""; } if(!isset($_POST['code_article'])){ if(isset($_SESSION['article']))$_SESSION['article']=""; }*/ } echo "<script>document.form.action='prepa_commande.php'; document.form.submit(); </script>"; } }else{/*si la requette est null, le code barre ou le code article ne correspond à aucun enregistrement*/ echo " <script>alert('La saisie ne correspond à aucun article en stock.'); document.form.action='prepa_commande.php'; document.form.submit(); </script>"; } ?> </form> <?php Deconnexion($connexion); }else{ echo "<script language='Javascript'> document.location.href='autorisation.php'; </script>"; } }else{ echo "<script language='Javascript'> document.location.href='identification.php'; </script>"; } ?> </body> </html>
Pendant que j'y suis, si vous savez comment faire des scrolbarlorsqu'on insère du code dans ce forum, meric de me le faire savoir.
Merci de votre aide.
22 mai 2008 à 14:51
En effet si j'ai bien compris d'après ce que j'ai lu dans d'autres posts, IE interprète deux fois la page, et la deuxième fois j'ai des informations qui ne correspondent plus car une modification à déjà été faite. J'ai alors ajoute un if pour que la seconde fois (ne comportant pas tous les paramètres) ne change rien dans la base.
J'ai alors le fonctionnement que je cherchais, même si je n'ai pas vraiment trouvé de solution.
Si vous avez un problème similaire il serait bon de le faire savoir, merci
a+
11 nov. 2009 à 15:44
11 nov. 2009 à 16:04
document.form.submit();
tu envois deux submit du coup !!
25 juil. 2011 à 21:47
ca ma débloquer et étant développer débutant c'est génial!
encore merci