Page 1 sur 1

Souci sur un update

Posté : 12 mars 2014, 11:03
par steph70
Bonjour a tous,

j'ai un script qui dans une moitié de page me renvoi des données de ma table 'reclam' et dans l'autre moitié qui est formulaire avec un renvoi de données complémentaire sur sur cette meme table

Malheureusement meme si tout semble bien se passer, rien ne s'inscrit dans ma bdd

j'ai du faire une erreur mais je ne vois pas ou.
<html>
<head><meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type"></head>
<body>
<div style="width:550px">
<basefont face="Tahoma" size="2">
<center style="color: white;"><h3 style="background-color: rgb(92, 168, 10);">Fiche de réclamation</h3></center><br>
 
<!-- entete -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
<TABLE BORDER="1">
  <TR>
 <TD width=100> <IMG SRC="logo2.jpg"
 ALT="logo"> </TD>
 <TD width=350 align=center> <B>FICHE RECLAMATION</B><BR>
(non-conformité produit, réclamation, anomalie, action<BR>
corrective, action préventive, axe amélioration, identification<BR>
d'urgence, plaintes...) </TD>
 <TD width=100> Référence : ENR FREC<BR>
-----------------<BR>
Indice : 04<br>
-----------------<BR>
Page : 1/1</TD>
  </TR>
</TABLE>
 
<!--fin d'entete -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- deuxième tableau -->
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
<?php
// recup variable
$ID=$_POST['ID'];
//Connection Mysql
mysql_connect("******","******","******")or die("Problème avec la base de données");<br>mysql_select_db("******a")or die ("pas de connection");<br>
 
 $reponse = mysql_query("SELECT `Theme` FROM reclam WHERE `ID` = '".$ID."'"); // Requête SQL
// on recupere le resultat sous forme d'un tableau
 $data = mysql_fetch_array($reponse);
 echo '<b><u>Thème de la fiche</u> : </b>'.$data['Theme'];
?>
 </TD>
  </TR>
</TABLE>
 
<!-- Fin de deuxième tableau -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- Troisième tableau -->
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
<?php
 
//Connection Mysql
mysql_connect("******o","******","******")or die("Problème avec la base de données");<br>mysql_select_db("******")or die ("pas de connection");<br>
 
 $reponse = mysql_query("SELECT * FROM reclam WHERE `ID` = '".$ID."'"); // Requête SQL
// on recupere le resultat sous forme d'un tableau
 $data = mysql_fetch_array($reponse);
 echo '<b><u>Recepteur</u> : </b>'.$data['rece'];
 echo '&nbsp;&nbsp;&nbsp;&nbsp;<b><u> Date</u> : </b>'.$data['daterece'];
 echo '&nbsp;&nbsp;&nbsp;&nbsp;<b><u> Heure</u> : </b>'.$data['heurerece'];
 echo '&nbsp;&nbsp;&nbsp;&nbsp;<b><u> Moyen</u> : </b>'.$data['Recepteur'];
 
?>
     
</TD>
  </TR>
</TABLE>
 
<!-- Fin de troisieme tableau -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- Quatrième tableau -->
 
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
 <?php
 
//Connection Mysql
mysql_connect("******","******","******")or die("Problème avec la base de données");<br>mysql_select_db("******")or die ("pas de connection");<br>
 
 $reponse = mysql_query("SELECT * FROM reclam WHERE `ID` = '".$ID."'"); // Requête SQL
// on recupere le resultat sous forme d'un tableau
 $data = mysql_fetch_array($reponse);
 echo '<b><u>Emetteur</u> : </b>'.$data['Emetteur'];
 echo '     <b><u> Nom</u> : </b>'.$data['Nom'];
 echo '     <b><u> Société</u> : </b>'.$data['Societe'];
 echo '<br>';
 echo '     <b><u> Mail</u> : </b>'.$data['mail'];
 
?>
</TD>
  </TR>
</TABLE>
 
<!-- Fin de 4ème tableau -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- 5ème tableau -->
 
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
 
    <b><u>3. Description de l'anomalie ou écart</u></b><br>
    <p>Quelles sont les causes du problème ?</p><br>
<?php
 
//Connection Mysql
mysql_connect("******","******","T******")or die("Problème avec la base de données");<br>mysql_select_db("******")or die ("pas de connection");<br>
 
 $reponse = mysql_query("SELECT * FROM reclam WHERE `ID` = '".$ID."'"); // Requête SQL
// on recupere le resultat sous forme d'un tableau
 $data = mysql_fetch_array($reponse);
 echo '<b><u>Cause</u> : </b>'.$data['cause'];
 echo '<br>';
 echo '<b><u>Description</u> : </b>'.$data['description'];
 echo '<br>';
 
?>
</TD>
  </TR>
</TABLE>
 
<!-- Fin de 5ème tableau -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- tableau qualité-->
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
<form method="post">
    <b><u>4. Traitement mis en oeuvre</u></b><br />
    <input type="checkbox" name="traitement" value="Action préventive" />Action préventive
    <input type="checkbox" name="traitement" value="Action corrective"/>Action corrective
 </TD>
  </TR>
</TABLE>
 
<!-- Fin du tableau qualité -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- 2ème tableau qualité -->
 
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
 
    <b><u>5. Action mise en oeuvre :</u></b><br>
    <p>Action mise en oeuvre : (nature, par qui ? <u>quand</u> ? comment ?</p><br>
    <textarea name="action" rows="4" cols="60"></textarea>
</TD>
  </TR>
</TABLE>
 
<!-- Fin du 2ème tableau qualité -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!-- ------------------------------------------------------------------------------------------------------------- -->
<!-- 3ème tableau qualité-->
<TABLE BORDER="1">
  <TR>
 <TD width=550>
 
    <b><u>6. Transmission service qualité</u></b> : (Cadre réservé au Service Qualité)<br />
    <input type="checkbox" name="final" value="Action réalisée satisfaisante" />Action réalisée satisfaisante
    <input type="checkbox" name="final" value="A revoir"/>A revoir<br/>
    Motif : <textarea name="motif" rows="1" cols="20"></textarea>
    Délais : <textarea name="delais" rows="1" cols="20"></textarea>
    <input type="submit" value="Validation"/>
</form>
 </TD>
  </TR>
</TABLE>
 
<!-- Fin du 3ème tableau qualité -->
<!-- ------------------------------------------------------------------------------------------------------------- -->
 
<!--Recupération des variables -->
<?php
 
//recup des variables
$traitement=$_POST['traitement'];
$action=$_POST['action'];
$final=$_POST['final'];
$motif=$_POST['motif'];
$delais=$_POST['delais'];
//$ID=$_POST['ID'];
 
 
// Fin de Recupération des variables
//---------------------------------------------------------------------------------------------------------------------
 
//Connection Mysql
 
 
    //Connexion à la base.
    mysql_connect("*****","****","****")or die("Problème avec la base de données");
    mysql_select_db("****")or die ("pas de connection");
 
//Requête
if ((!empty($traitement)) and (!empty($action)))
{
     
    //Vide la table 'nom_de_la_table'
    mysql_query("UPDATE reclam SET traitement='".$traitement."', action='".$action."',final='".$final."',motif='".$motif."',delais='".$delais."' WHERE `id`='".$ID."'") or die ("Désolé, il y a eu un problème dans la transmission des données");
    echo '<font face="tahoma" color="red">Fin d\'execution !<br>Données transmises</font>';
 
}
?>
</div>
</body>
</html>
Je recupère ma variable $id d'un formulaire précédent et si je :
- met en dur l'id, ca fonctionne
- si je fais un echo $id avant ma requete, je recupère bien ma valeur
- si je fais un var_dump, ca me donne egalement la bonne valeur de mon id
je ne comprend plus rien

si vous pouvez m'aider, je vous en serais reconnaissant.

Merci d'avance

Re: Souci sur un update

Posté : 14 mars 2014, 16:43
par moogli
salut,

- pourquoi trois ou quatre connexion à la base de donnée ? tu a fait une fois pour toute au début de la page etc'est réglé. (n'oublie pas le myslq_close() en base de page ainsi que less mysql_free_statement() pour libérer les jeux de résultat une fois que tu n'en a plus besoin).
- D'ailleurs tu fait 4 fois la même requête. qu'elle intéret ? tu le fait une fois et utilise le tableau fournit dans le reste de la page ;)
- les tableaux c'est le mal pour la mise en page ;)
- tu commence par un $ID = $_POST['ID']; cela inclus que cette est toujours appelée depuis un formulaire (qui comporte un champ nommé ID) ? en tous cas ce n'est pas le cas ded ton formulaire (sur la page indiqué)
- La variable est vide lorsque tu tente de valider le formulaire du coup l'update ne se fait pas (enfin si mais il cherche une ligne avec un id vide)
- id c'est un entier ? si oui vire les ' autour c'est inutile (c'est fait pour les chaînes de caractères).
- utilise mysql_real_escape_string pour protéger ta requête des injection SL (cf google ;) )
- ton html est mal forme du as du bol si les champs son correctement posté c'est que ton navigateur de test est sympa (les balise doivent être ouverte ET fermée dans la même balise parente.
en clair
<table><tr><td>
<form ...>
</td></tr></table>
<table><tr><td>
</form>
</td></tr></table>
n'est pas valide !

tu faire la même mise en page en virant les tables et en utilisant des div (balise sémantique correcte pour ce que tu cherche à faire).

@+