Requête UPDATE aucun résultat

Requête UPDATE aucun résultat - SQL/NoSQL - Programmation

Marsh Posté le 06-07-2013 à 09:19:18    

Bonjour,
 
Je poste dans le forum car je bloque sur quelque chose de stupide où je ne trouve pas l'erreur.
Dans la page php que je suis en train de créer on peut modifier les champs d'une table dans une BDD MySQL hébergée sous free. Rien de bien extraordinaire.
Le principe est le suivant, une page qui afficher les données de la table dans un tableau html avec un bouton "modifier" pour chaque ligne si jamais on veut modifier un enregistrement de la table. Bref. Quand on clique sur le bouton, l'ID de la ligne à modifier en envoyer en GET.
Quand on appelle la page de modification, je récupère le paramètre URL en GET et je remplis préalablement les champs du formulaire avec les données dans la table.
J'ai déjà procédé de cette manière pour modifier d'autres tables et ça marche très bien.
Donc j'ai refait un copier/coller du code en adaptant les requêtes et tout ce qu'il fallait modifier.
Seulement cette fois-ci ça ne marche pas.  :ouch:  
Les champs sont bien remplis avec les données de la table donc le paramètre GET est bien récupéré. Mais quand on modifie un champs et qu'on clique sur le bouton, les données ne sont pas enregistrées dans la BDD et le header location ne fonctionne pas. :??:  
J'en déduis donc que c'est ma requête UPDATE qui ne passe pas alors qu'elle est toute bête...
Vous trouverez sûrement très rapidement où ça bloque car ça ne doit pas être un gros problème...  :whistle:  
Je vous poste le code de la page qui modifie:
 

Code :
  1. <?php session_start(); 
  2. if (!isset($_SESSION['email'])) {
  3.    header ('Location: index.php');
  4.    exit(); 
  5. }
  6. $id_tournee = $_GET['tournee'];
  7. $base = mysql_connect ('sql.free.fr', '**********', '*********'); 
  8. mysql_select_db ('*********', $base);
  9. $sql = 'SELECT Numero, Nb_pt_liv, Pickup, Nb_km, Chauffeur, Date_liv FROM tournee_tnt WHERE ID_TNT="'.$id_tournee.'"';
  10. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  11. $data = mysql_fetch_array($req);
  12. $numero = htmlentities($data['Numero'], ENT_QUOTES, 'UTF-8');
  13. $nbp = htmlentities($data['Nb_pt_liv'], ENT_QUOTES, 'UTF-8');
  14. $nbr = htmlentities($data['Pickup'], ENT_QUOTES, 'UTF-8');
  15. $nbk = htmlentities($data['Nb_km'], ENT_QUOTES, 'UTF-8');
  16. $chauffeur = htmlentities($data['Chauffeur'], ENT_QUOTES, 'UTF-8');
  17. $date_liv = htmlentities($data['Date_liv'], ENT_QUOTES, 'UTF-8');
  18. if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') {
  19. $new_numero = mysql_real_escape_string($_POST['numero']);
  20. $new_nbp = mysql_real_escape_string($_POST['nbp']);
  21. $new_nbr = mysql_real_escape_string($_POST['nbr']);
  22. $new_nbk = mysql_real_escape_string($_POST['nbk']);
  23. $new_chauffeur = mysql_real_escape_string($_POST['chauffeur']);
  24. $new_date_liv = mysql_real_escape_string($_POST['date_liv']);
  25. if (isset($_POST['numero']) AND $_POST['numero'] !== "" )
  26.     { 
  27.      if (isset($_POST['nbp']) AND $_POST['nbp'] !== "" )
  28.        {
  29.          if (isset($_POST['nbr']) AND $_POST['nbr'] !== "" )
  30.             {   
  31.              if (isset($_POST['nbk']) AND $_POST['nbk'] !== "" )
  32.                 {
  33.     if (isset($_POST['chauffeur']) AND $_POST['chauffeur'] !== "" )
  34.     {
  35.      if (isset($_POST['date_liv']) AND $_POST['date_liv'] !== "" )
  36.      {
  37.       $base = mysql_connect ('sql.free.fr', '*********', '*********'); 
  38.       mysql_select_db ('*********', $base);
  39.       $sql ='UPDATE tournee_tnt SET
  40.       Numero ="'.$new_numero.'",
  41.       Nb_pt_liv ="'.$new_nbp.'",
  42.       Pickup ="'.$new_nbr.'",
  43.       Nb_km ="'.$new_nbk.'",
  44.       Chauffeur ="'.$new_chauffeur.'",
  45.       Date_liv ="'.$new_date_liv.'",
  46.       WHERE ID_TNT ="'.$id_tournee.'"';
  47.       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  48.      }
  49.     } 
  50.       }
  51.             }
  52.     }
  53. header('Location: tnt.php');exit();
  54.     }
  55. }
  56. ?>
  57. <!DOCTYPE html>
  58. <html lang="fr">
  59. <head>
  60.  <meta charset="utf-8">
  61.  <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
  62.  <title>Gestion des feuilles de route</title>
  63.  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
  64.  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  65.  <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
  66. </head>
  67. <body>
  68.  <div data-role="page">
  69.   <div data-role="header">
  70.    <a href="tnt.php" data-icon="back">Retour</a>
  71.    <h1>Gestion des feuilles de route</h1>
  72.   </div><!-- /Entete de la page -->
  73.   <div data-role="content">
  74.    <form action="modifier_tnt.php" method="post" id="modif_tnt">
  75.     <ul data-role="listview">
  76.      <li data-role="list-divider">Numéro de la tournée</li>
  77.       <li><input type="text" name="numero" id="numero" value="<?php echo $numero; ?>" /></li>
  78.      <li data-role="list-divider">Nombre de points</li>
  79.       <li><input type="text" name="nbp" id="nbp" value="<?php echo $nbp; ?>" /></li> 
  80.      <li data-role="list-divider">Nombre de ramasses</li>
  81.       <li><input type="text" name="nbr" id="nbr" value="<?php echo $nbr; ?>" /></li> 
  82.      <li data-role="list-divider">Nombre de kilomètres</li>
  83.       <li><input type="text" name="nbk" id="nbk" value="<?php echo $nbk; ?>" /></li>
  84.      <li data-role="list-divider">Chauffeur</li>
  85.       <li><input type="text" name="chauffeur" id="chauffeur" value="<?php echo $chauffeur; ?>" /></li>
  86.      <li data-role="list-divider">Date</li>
  87.       <li><input type="text" name="date_liv" id="date_liv" value="<?php echo $date_liv; ?>" /></li> 
  88.      <p><label for="modifier"></label><input type="submit" name="modifier" id="modifier" value="Modifier" data-theme="b" /></p>
  89.     </ul>
  90.    </form>
  91.   </div>
  92.   <div data-role="footer">
  93.    <h4>&copy; Aldana - Antony 2013</h4>
  94.   </div><!-- /Pied de page -->
  95.  </div>
  96.  <?php
  97.   if (isset($erreur)) echo '<br /><br />',$erreur; 
  98.  ?>
  99. </body>
  100. </html>


 
 
Je précise que j'ai placé des "echo" un peu partout entre mes "if" pour voir d'où pourrait venir l'erreur et en fait je ne rentre même pas dans le "if" qui détermine si j'ai bien appuyé sur le bouton modifier.
 
Celui ci:

Code :
  1. if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') {


 
Donc j'ai regardé la syntaxe de mes noms et l'orthographe mais tout est identique. Donc je ne comprends pas pourquoi je ne rentre pas dans ce "if".
 
Merci beaucoup pour votre aide  :D


Message édité par weezyf le 06-07-2013 à 10:24:33
Reply

Marsh Posté le 06-07-2013 à 09:19:18   

Reply

Marsh Posté le 07-07-2013 à 06:50:12    

Tu peux faire écho de la variable contenant ta requête et nous donner son contenu ?
Ça ira plus vite que de lire 100 lignes de PHP :jap:

Reply

Marsh Posté le 07-07-2013 à 06:53:45    

De quelle requête ?
Car si tu parles de l'UPDATE ça servirait à rien car je ne rentre pas dans la condition qui permet de l'exécuter donc rien ne s'affichera.
Et si c'est concernant la première requête (SELECT) elle fonctionne correctement car les données sont bien récupérées de la BDD pour être affichées dans les champs du formulaire.

Reply

Marsh Posté le 07-07-2013 à 07:04:46    

D'accord, j'en étais resté à : "J'en déduis que c'est ma requête UPDATE qui ne marche pas".  
Donc c'est un problème de PHP, pas de SQL ? Si oui, je laisse quelqu'un d'autre te répondre :jap:

Reply

Marsh Posté le 07-07-2013 à 07:11:59    

Et bien pour être franc je n'en ai pas la moindre idée ^^
Oui je pense que c'est un problème de PHP car je ne rentre pas dans la requête. Je vais sagement patienter en attendant que quelqu'un me donne une piste. Merci d'avoir essayer de m'aider en tout cas :)

Reply

Marsh Posté le 08-07-2013 à 10:33:44    

Juste petite précision, toutes tes variables sont des variables $_POST, tu envoies un formulaire avec les variables $_GET, je me trompe peux être, mais fait un echo print_r($_POST,1); juste avant ta première condition pour voir ce que contient la variable.

Reply

Sujets relatifs:

Leave a Replay

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