PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : MySQL, PostgreSQL, etc... » Requête UPDATE aucun résultat » 31-07-2013 20:10:57

En regardant dans la doc' de jQueryMobile j'ai remarqué qu'il y avait un traitement différent pour les formulaires. Il semblerait que la méthode post ne fonctionne pas avec le chargement en AJAX des pages. Il faut que je désactive l'ajax.
Pour cela j'ai rajouté data-ajax="false".

Cela me permet maintenant d'avoir une page avec tous les echo et les messages d'erreur affichés.
J'ai eu une erreur affichée et j'ai pu la corriger. Donc maintenant tout fonctionne.

Merci à tous pour votre aide et votre temps passé à m'aider !

#2 Re : MySQL, PostgreSQL, etc... » Requête UPDATE aucun résultat » 31-07-2013 20:10:57

Bonjour,

Pour être honnête je n'ai pas la moindre idée de comment effectuer ces tests. Ce que je peux vous dire, c'est que mes variables contiennent les bonnes valeurs que ce soit les POST ou le GET.
La valeur du bouton Modifier est bien transmises et les données sont bien récupérées de la BDD.
Seulement je n'arrive pas à rentrer dans mes conditions.

Peut-être pourriez-vous m'éclairer sur les procédures à suivre avec un jargon moins formel ?:D

#3 Re : MySQL, PostgreSQL, etc... » Requête UPDATE aucun résultat » 31-07-2013 20:10:57

Bonjour,

je suis désolé de ne répondre que maintenant mais j'étais en vacance pendant une semaine, donc je ne pouvais donner suite à mon post.

J'ai essayé de remplacer les "AND" par "&&" mais ça ne change rien au problème.

Je n'arrive toujours pas à modifier mes champs.

Merci.

#4 MySQL, PostgreSQL, etc... » Requête UPDATE aucun résultat » 31-07-2013 20:10:57

WeezyF
Réponses : 7

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:


<?php session_start();
if (!isset($_SESSION['email'])) {
   header ('Location: index.php');
   exit();
}
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
error_reporting(E_ALL);
 
    $id_tournee = (isset($_GET['tournee'])) ? (int)$_GET['tournee'] : 0;
 
    $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');
echo "je suis au début ";
if (isset($_POST['modifier']) && $_POST['modifier'] == 'Modifier') {      
echo "je suis dans le 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']);
     
echo "je suis à la fin de modifier";  
if (isset($_POST['numero']) AND $_POST['numero'] !== "")
    {
    echo "je suis dans numero";
     if (isset($_POST['nbp']) AND $_POST['nbp'] !== "")
       {
       echo "je suis dans nbp";
         if (isset($_POST['nbr']) AND $_POST['nbr'] !== "")
            {
            echo "je suis dans nbr";
             if (isset($_POST['nbk']) AND $_POST['nbk'] !== "")
                {
                echo "je suis dans nbk";
                 if (isset($_POST['chauffeur']) AND $_POST['chauffeur'] !== "")
                    {
                    echo "je suis dans chauffeur";
                     if (isset($_POST['date_liv']) AND $_POST['date_liv'] !== "")
                        {
                            echo "je suis dans 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>&copy; Antony 2013</h4>
            </div><!-- /Pied de page -->
        </div>
        <?php
            if (isset($erreur)) echo '<br /><br />',$erreur;
        ?>
    </body>
</html>
 

J'ai placé des "écho" un peu partout entre mes "if" et en fait je ne rentre même pas dans le "if" qui détermine si j'ai bien appuyé sur le bouton 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

Pied de page des forums

Propulsé par FluxBB