weezyf | 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. 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... Je vous poste le code de la page qui modifie:
Code :
- <?php session_start();
- if (!isset($_SESSION['email'])) {
- header ('Location: index.php');
- exit();
- }
- $id_tournee = $_GET['tournee'];
- $base = mysql_connect ('sql.free.fr', '**********', '*********');
- mysql_select_db ('*********', $base);
- $sql = 'SELECT Numero, Nb_pt_liv, Pickup, Nb_km, Chauffeur, Date_liv FROM tournee_tnt WHERE ID_TNT="'.$id_tournee.'"';
- $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
- $data = mysql_fetch_array($req);
- $numero = htmlentities($data['Numero'], ENT_QUOTES, 'UTF-8');
- $nbp = htmlentities($data['Nb_pt_liv'], ENT_QUOTES, 'UTF-8');
- $nbr = htmlentities($data['Pickup'], ENT_QUOTES, 'UTF-8');
- $nbk = htmlentities($data['Nb_km'], ENT_QUOTES, 'UTF-8');
- $chauffeur = htmlentities($data['Chauffeur'], ENT_QUOTES, 'UTF-8');
- $date_liv = htmlentities($data['Date_liv'], ENT_QUOTES, 'UTF-8');
- if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') {
- $new_numero = mysql_real_escape_string($_POST['numero']);
- $new_nbp = mysql_real_escape_string($_POST['nbp']);
- $new_nbr = mysql_real_escape_string($_POST['nbr']);
- $new_nbk = mysql_real_escape_string($_POST['nbk']);
- $new_chauffeur = mysql_real_escape_string($_POST['chauffeur']);
- $new_date_liv = mysql_real_escape_string($_POST['date_liv']);
- if (isset($_POST['numero']) AND $_POST['numero'] !== "" )
- {
- if (isset($_POST['nbp']) AND $_POST['nbp'] !== "" )
- {
- if (isset($_POST['nbr']) AND $_POST['nbr'] !== "" )
- {
- if (isset($_POST['nbk']) AND $_POST['nbk'] !== "" )
- {
- if (isset($_POST['chauffeur']) AND $_POST['chauffeur'] !== "" )
- {
- if (isset($_POST['date_liv']) AND $_POST['date_liv'] !== "" )
- {
- $base = mysql_connect ('sql.free.fr', '*********', '*********');
- mysql_select_db ('*********', $base);
- $sql ='UPDATE tournee_tnt SET
- Numero ="'.$new_numero.'",
- Nb_pt_liv ="'.$new_nbp.'",
- Pickup ="'.$new_nbr.'",
- Nb_km ="'.$new_nbk.'",
- Chauffeur ="'.$new_chauffeur.'",
- Date_liv ="'.$new_date_liv.'",
- WHERE ID_TNT ="'.$id_tournee.'"';
- $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
- }
- }
- }
- }
- }
- header('Location: tnt.php');exit();
- }
- }
- ?>
- <!DOCTYPE html>
- <html lang="fr">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
- <title>Gestion des feuilles de route</title>
- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
- <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
- <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
- </head>
- <body>
- <div data-role="page">
- <div data-role="header">
- <a href="tnt.php" data-icon="back">Retour</a>
- <h1>Gestion des feuilles de route</h1>
- </div><!-- /Entete de la page -->
- <div data-role="content">
- <form action="modifier_tnt.php" method="post" id="modif_tnt">
- <ul data-role="listview">
- <li data-role="list-divider">Numéro de la tournée</li>
- <li><input type="text" name="numero" id="numero" value="<?php echo $numero; ?>" /></li>
- <li data-role="list-divider">Nombre de points</li>
- <li><input type="text" name="nbp" id="nbp" value="<?php echo $nbp; ?>" /></li>
- <li data-role="list-divider">Nombre de ramasses</li>
- <li><input type="text" name="nbr" id="nbr" value="<?php echo $nbr; ?>" /></li>
- <li data-role="list-divider">Nombre de kilomètres</li>
- <li><input type="text" name="nbk" id="nbk" value="<?php echo $nbk; ?>" /></li>
- <li data-role="list-divider">Chauffeur</li>
- <li><input type="text" name="chauffeur" id="chauffeur" value="<?php echo $chauffeur; ?>" /></li>
- <li data-role="list-divider">Date</li>
- <li><input type="text" name="date_liv" id="date_liv" value="<?php echo $date_liv; ?>" /></li>
- <p><label for="modifier"></label><input type="submit" name="modifier" id="modifier" value="Modifier" data-theme="b" /></p>
- </ul>
- </form>
- </div>
- <div data-role="footer">
- <h4>© Aldana - Antony 2013</h4>
- </div><!-- /Pied de page -->
- </div>
- <?php
- if (isset($erreur)) echo '<br /><br />',$erreur;
- ?>
- </body>
- </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 :
- 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 Message édité par weezyf le 06-07-2013 à 10:24:33
|