Discussion: formulaire modification [PHP 5.0]

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut formulaire modification

    Bonjour à tous,

    Je tourne en rond depuis 2 jours.
    J'ai créer un formulaire de modification de données et rien ne fonctionne. Enfin presque...
    Sur la page de visualisation pas de problème:


    PAGE SAISIRVINS.PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <strong>Type de controle : </strong><?php echo $donnees['type']; ?>, numero de chassis/immat: <?php echo $donnees['vins']; ?> 
        modele : <?php echo $donnees['model']; ?>date de controle <?php echo $donnees['datecontrole']; ?> Qte controle : <?php echo $donnees['qte']; ?> <font color="red">/!\Attention/!\ supprimer définitivement le conge/arret ?</font><a href="deletechassis.php?id=<?php echo $donnees['id']; ?>"> Oui</a><a href="modifchassis.php?id=<?php echo $donnees['id']; ?>"> MODIF</a>
       </p></h5>
    C'est ici que cela ce complique, j'ai bien les infos qui apparaissent dans le formulaire par rapport a l'id de sélectionné.
    Mais quand je fais la modification... rien ne bouge.
    Je pense qu'il s'agit d'une erreur toute bête mais je ne trouve pas...

    PAGE MODIF CHASSIS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <html>
      <head>
        <title>modification </title>
     
        <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
      <script>
      $( function() {
        $( "#datepicker" ).datepicker({
        	dateFormat: "yy-mm-dd"
        });
     
      });
      </script>
      </head>
    <body>
     
     
    <?php
    $connexion = new PDO('mysql:host=localhost;dbname=EMPL','root','');
            $a = htmlspecialchars($_POST['type']);
            $b = htmlspecialchars($_POST['vins']);
            $c = htmlspecialchars($_POST['model']);
            $d = htmlspecialchars($_POST['datecontrole']);
            $e = htmlspecialchars($_POST['qte']);
            $f = htmlspecialchars($_POST['comment']);
            $g = htmlspecialchars($_POST['nbticket']);
            $h = htmlspecialchars($_POST['padage']);
            $z =htmlspecialchars($_POST['id']);
            $id=$_GET['id'];
     
    if(isset($_POST['ok']))
    { 
     
     
        $requette= ("UPDATE Chassiscontrole SET type='".$a."',vins='".$b."',model='".$c."',datecontrole='".$d."',qte='".$e."',comment='".$f."',nbticket='".$g."',padage='".$h."' WHERE id='".$z."'");
        if($connexion->exec($requette))
        {
          echo "ok";
        }
    }
     
    $id=$_GET['id'];
     
    $reponse = $bdd->query('SELECT * FROM Chassiscontrole WHERE id="'.$id.'"');
     
    $donnees = $reponse->fetch();
     
     
     
    ?>
     
    test$z<input type="text" name="test" value="'.$z.'">
    <div name=haut>
     
    <form action="" name="formulaire1" method="post" align="left">
     
    <input type="hidden" name="id2" value="<?php echo $_GET['id'] ?>">
    <p> Ne pas modifier:  
    <input type="text" name="id" value="<?php echo $_GET['id'] ?>">
    <p>Quantite type:  
    <input type="text" name="type"  value="<?php echo $donnees['type'];?>"/>
    <p>Vin/Immat:  
    <input type="text" name="vins"  value="<?php echo $donnees['vins'];?>"/>
    <p>modele:  
    <input type="text" name="model"  value="<?php echo $donnees['model'];?>"/>
    <p>Date controle:  
    <input type="date" id="datepicker" name="datecontrole"  value="<?php echo $donnees['datecontrole'];?>"/>
    <p>Quantite controle:  
    <input type="text" name="qte"  value="<?php echo $donnees['qte'];?>"/>
    <p>Commentaire:  
    <input type="text" name="coment"  value="<?php echo $donnees['comment'];?>"/>
    <p>Nombre de ticket:  
    <input type="text" name="nbticket"  value="<?php echo $donnees['nbticket'];?>"/>
    <p>Nombre de vin pade:  
    <input type="text" name="padage"  value="<?php echo $donnees['padage'];?>"/>
    <p>
    <input type="submit" name="ok" value="Modifier"/><br></form>
    <form action="saisirvins.php" method="post"><input type="submit" name="Annuler" value="Annuler"/>
    <p>
     
     
    </body>
    </html>
     
    <a href="saisirvins.php">RETOUR</a>

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2007
    Messages : 364
    Points : 495
    Points
    495

    Par défaut

    Bonjour,

    Tu as des erreurs retournées par PHP ou autres dans les logs ? Sinon je voie que tu utilises PDO c'est très bien mais je te conseil vivement d'utiliser la méthode prepare() car là tu as des failles d'injections SQL dans tous les sens.

    Sinon affiche juste ta requête d'update et essaye de l’exécuter directement dans MySQL ou PHPMyAdmin par exemple pour voir il n'y a pas d'erreur.

    @+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Merci Inazo

    Je viens de refaire un test histoire de reprendre le problème de zéro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
     
    $id = intval($_GET["id"]);
     
     
     
    try
    {
      // On se connecte à MySQL
      $bdd = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
      // En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
     
    // Si tout va bien, on peut continuer
     
    // On récupère tout le contenu de la table interim
    $reponse = $bdd->query('SELECT * FROM validhs WHERE id="'.$id.'"');
     
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
     
    ?>
    <form method="POST" action="">
     
    <input type="id" value="<?php echo $donnees['id'] ?>">
     
    <input type="nom" value="<?php echo $donnees['nom'] ?>">
     
    <input type="datehs" value="<?php echo $donnees['datehs'] ?>">
     
    <input type="heure" value="<?php echo $donnees['heure'] ?>">
     
    <input type="com" value="<?php echo $donnees['com'] ?>">
     
    <input type="demande" value="<?php echo $donnees['demande'] ?>">
     
    <select name="valid" 
    <option selected="selected"></option>
    <option value="OUI">ACCEPTER</option>
    <option value="NON">REFUSER</option>
     
    <input type="submit" name="submit" value="Valider"/><br>
    </form>
     
    <?php
    }
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
    Cette partie fonctionne parfaitement

    Par contre c'est sur la requête de MAJ que je galère je pense qu'il y a un problème de syntaxe mais je n'arrive pas a voir...
    Pour info le code qui suit est à la suite du premier code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?php
    pdo=xxxxxx
     
    if(isset($_POST['submit']))
    {		
     
     
    	if(!empty($_POST['valid']))
    	{
     
    		$bddmembre2 = $bddreq->prepare("UPDATE validhs SET valid="'.$n6.'"" , nom="'.$n1.'"" WHERE id="'.$n0.'");
    
    		$n1 = ($_POST['nom']);
    		$n2 = ($_POST['datehs']);
    		$n3 = ($_POST['heure']);
    		$n4 = ($_POST['com']);
    		$n5 = ($_POST['demande']);
    		$n6 = ($_POST['valid']);
    		$n0 = ($_POST['id']);
    		
    				
    
    		$bddmembre2->execute(array($n1,$n2,$n3,$n4,$n5,$n6,$n0));
    				echo "merci"
    	}
    	else
    	{
    		$erreur = script;//= "tous les champs doivent être complete";
    	}
                 
    }
    
    ?>
    Merci d'avance pour votre aide

  4. #4
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    Bonjour,

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    		$bddmembre2 = $bddreq->prepare("UPDATE validhs SET valid="'.$n6.'"" , nom="'.$n1.'"" WHERE id="'.$n0.'");
    D'où sort cette syntaxe ?

    Il faudrait revoir le concept (et la syntaxe) de "requête préparée PDO".

    exemple ici :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		$bddmembre2 = $bddreq->prepare("UPDATE validhs SET valid= :n6, nom= :n1  WHERE id= :n0 ");
     
    		...
     
    		$bddmembre2->execute(array(
    			':n1' => $n1,
    			':n6' => $n6,
    			':n0' => $n0
    			));

    N.B. En mettant des noms de variables plus explicites, ce serait plus simple à déboguer.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Merci jreaux62

    Désolé pour les erreurs... par contre sur ton lien je ne vois pas les requêtes UPDATE ?
    Pour les requêtes INSERT ça va.

  6. #6
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    Et alors ?

    C'est le même principe !

    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Merci pour ton aide jreaux62

    Après modification dans les champs du formulaire la requête ne modifie rien les enregistrements reste inchangé ...
    J'ai fais quelques modifications pour avoir des variables un peu plus clair

    Page avec le formulaire:

    UPDATEHS.PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
     
    $id = intval($_GET["id"]);
     
     
     
    try
    {
      // On se connecte à MySQL
      $bdd = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
      // En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
     
    // Si tout va bien, on peut continuer
     
    // On récupère tout le contenu de la table interim
    $reponse = $bdd->query('SELECT * FROM validhs WHERE id="'.$id.'"');
     
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
     
    ?>
    <form method="POST" action="suiteupdatehs.php">
     
    <input type="text" name="id" value="<?php echo $donnees['id'] ?>">
     
    <input type="text" name="nom" value="<?php echo $donnees['nom'] ?>">
     
    <input type="text" name="datehs" value="<?php echo $donnees['datehs'] ?>">
     
    <input type="text"  name="heure" value="<?php echo $donnees['heure'] ?>">
     
    <input type="text"  name="com" value="<?php echo $donnees['com'] ?>">
     
    <input type="text" name="demande" value="<?php echo $donnees['demande'] ?>">
     
    <select name="valid" 
    <option selected="selected"></option>
    <option value="OUI">ACCEPTER</option>
    <option value="NON">REFUSER</option>
     
    <input type="submit" name="submit" value="Valider"/><br>
    </form>
     
    <?php
    }
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
     
     
     
    <a href="saisirh.php">RETOUR</a>
    page avec la requete:
    SUITEUPDATEHS.PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <?php
    }
     $bddreq = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
     
    if(isset($_POST['submit']))
    {		
     
     
    	if(!empty($_POST['valid']))
    	{
        	$bddmembre2 = $bddreq->prepare("UPDATE validhs SET id=:n0, nom=:n1, datehs=:n2, heure=:n3, com=:n4, demande=:n5 valid=:n6, WHERE id=:n0");
     
     
    		$vid = ($_POST['id']);
    		$vnom = ($_POST['nom']);
    		$vdatehs = ($_POST['datehs']);
    		$vheure = ($_POST['heure']);
    		$vcom = ($_POST['com']);
    		$vdemande = ($_POST['demande']);
    		$vvalid = ($_POST['valid']);
     
    		$bddmembre2->execute(array(
    			':n0' => $vid,
    			':n1' => $vnom,
    			':n2' => $vdatehs,
    			':n3' => $vheure,
    			':n4' => $vcom,
    			':n5' => $vdemande,
    			':n6' => $vvalid
     
    			));
     
     
     
    	}
    	else
    	{
    		$erreur = script;//= "tous les champs doivent être complete";
    	}
     
    }
     
     
     
     
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
     
     
     
     
     
    <a href="saisirh.php">RETOUR</a>

  8. #8
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // On récupère tout le contenu de la table interim
    $reponse = $bdd->query('SELECT * FROM validhs WHERE id="'.$id.'"');
    Ben non...
    On récupère la ligne correspndant à l'id "$id" !

    Par contre, CE N'EST PAS UNE REQUETE PREPAREE !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    $prepare = $bdd->prepare('SELECT * FROM validhs WHERE id= :id ');
    $reponse = $prepare->execute( array( ':id' => $id ));
    [EDIT] Bon. Tu avais pris la précaution d'utiliser intval. Donc, pas de drame.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = intval($_GET["id"]);
    Cela dit, il est toujours préférable d'utiliser les requêtes préparées, surtout avec des données "sensibles", telles que $_GET ou $_POST.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Quand tu dis que ce n'est pas une requête prépare ok car il faut afficher ici les données, donc il faut passer par une requete mysql_query ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $prepare = $bdd->mysql_query('SELECT * FROM validhs WHERE id= :id ');
    $reponse = $prepare->execute( array( ':id' => $id ));

  10. #10
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    ???
    Je t'ai mis le code correct.



    Merci :
    • d'indenter proprement ton code, pour une meilleure lecture
    • et aussi de corriger le HTML :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="valid" 
    <option selected="selected"></option>
    <option value="OUI">ACCEPTER</option>
    <option value="NON">REFUSER</option>
    (balise select non fermée)
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Merci jreaux62

    Voici le code de la page updaths.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    try
    {
      $bdd = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
      $id = intval($_GET["id"]);
    }
    catch(Exception $e)
    {
     
            die('Erreur : '.$e->getMessage());
    }
     
     
    	 $prepare = $bdd->prepare('SELECT * FROM validhs WHERE id= :id ');
    	 $reponse = $prepare->execute( array( ':id' => $id ));
     
    	 while ($donnees = $reponse->fetch())
    	 {
     
    ?>
    <form method="POST" action="suiteupdatehs.php">
     
    <input type="text" name="id" value="<?php echo $donnees['id'] ?>">
     
    <input type="text" name="nom" value="<?php echo $donnees['nom'] ?>">
     
    <input type="text" name="datehs" value="<?php echo $donnees['datehs'] ?>">
     
    <input type="text"  name="heure" value="<?php echo $donnees['heure'] ?>">
     
    <input type="text"  name="com" value="<?php echo $donnees['com'] ?>">
     
    <input type="text" name="demande" value="<?php echo $donnees['demande'] ?>">
     
    <select name="valid" 
    <option selected="selected"></option>
    <option value="OUI">ACCEPTER</option>
    <option value="NON">REFUSER</option>
    </select>
     
    <input type="submit" name="submit" value="Valider"/><br>
    </form>
     
    <?php
    	}
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
     
    <a href="saisirh.php">RETOUR</a>
    Par contre j'ai plus rien qui s'affiche...

    Sinon pour la page traitement des données voila les modifications:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?php
     
         $bddreq = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
         $id = intval($_GET["id"]);
     
        if(isset($_POST['submit']))
        {		
     
     
        	if(!empty($_POST['valid']))
        	{
            	$bddmembre2 = $bddreq->prepare("UPDATE validhs SET id=:n0, nom=:n1, datehs=:n2, heure=:n3, com=:n4, demande=:n5 valid=:n6, WHERE id=:n0");
     
     
        		$vid = ($_POST['id']);
        		$vnom = ($_POST['nom']);
        		$vdatehs = ($_POST['datehs']);
        		$vheure = ($_POST['heure']);
        		$vcom = ($_POST['com']);
        		$vdemande = ($_POST['demande']);
        		$vvalid = ($_POST['valid']);
     
        		$bddmembre2->execute(array(
        			':n0' => $vid,
        			':n1' => $vnom,
        			':n2' => $vdatehs,
        			':n3' => $vheure,
        			':n4' => $vcom,
        			':n5' => $vdemande,
        			':n6' => $vvalid
     
        			));
     
     
     
        	}
        	else
        	{
        		$erreur = script;//= "tous les champs doivent être complete";
        	}
     
        }
     
        $reponse->closeCursor(); // Termine le traitement de la requête
        ?>   
     
        <a href="saisirh.php">RETOUR</a>

  12. #12
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    1/ Où est le <?php au début du 1er script ?

    2/ Il y a une virgule mal placée dans la requête, et on ne peut pas mettre 2 fois le même nom de marqueur.
    $bddmembre2 = $bddreq->prepare("UPDATE validhs SET id=:n0, nom=:n1, datehs=:n2, heure=:n3, com=:n4, demande=:n5 valid=:n6, WHERE id=:n0");
    3/ ça ne sert à rien de passer par des variables intermédiaires :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	$bddmembre2 = $bddreq->prepare("UPDATE validhs SET nom=:nom, datehs=:datehs, heure=:heure, com=:com, demande=:demande, valid=:valid WHERE id=:id");
    	$bddmembre2->execute(array(
    		':id' => $_POST['id'],
    		':nom' => $_POST['nom'],
    		':datehs' => $_POST['datehs'],
    		':heure' => $_POST['heure'],
    		':com' => $_POST['com'],
    		':demande' => $_POST['demande'],
    		':valid' => $_POST['valid']
    		));
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    1/ Où est le <?php au début du 1er script ? Juste au dessus j'ai oublié de le selectionner

    $bddmembre2 = $bddreq->prepare("UPDATE validhs SET id=:n0, nom=:n1, datehs=:n2, heure=:n3, com=:n4, demande=:n5 valid=:n6, WHERE id=:n0");
    corrigé

  14. #14
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    Voir mon message précédent.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Corrigé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
     
    try
    {
      $bdd = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
      $id = intval($_GET["id"]);
    }
    catch(Exception $e)
    {
     
            die('Erreur : '.$e->getMessage());
    }
     
     
    	 $prepare = $bdd->prepare('SELECT * FROM validhs WHERE id= :id ');
    	 $reponse = $prepare->execute( array( ':id' => $id ));
     
    	 while ($donnees = $reponse->fetch())
    	 {
     
    ?>
    <form method="POST" action="suiteupdatehs.php">
     
    <input type="text" name="id" value="<?php echo $donnees['id'] ?>">
     
    <input type="text" name="nom" value="<?php echo $donnees['nom'] ?>">
     
    <input type="text" name="datehs" value="<?php echo $donnees['datehs'] ?>">
     
    <input type="text"  name="heure" value="<?php echo $donnees['heure'] ?>">
     
    <input type="text"  name="com" value="<?php echo $donnees['com'] ?>">
     
    <input type="text" name="demande" value="<?php echo $donnees['demande'] ?>">
     
    <select name="valid" 
    <option selected="selected"></option>
    <option value="OUI">ACCEPTER</option>
    <option value="NON">REFUSER</option>
    </select>
     
    <input type="submit" name="submit" value="Valider"/><br>
    </form>
     
    <?php
    	}
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
     
    <a href="saisirh.php">RETOUR</a>
    La page avec le formulaire ne s'affiche toujours pas, j'ai du mal a voir d'ou vient le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php
     
         $bddreq = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', '');
         $id = intval($_GET["id"]);
     
        if(isset($_POST['submit']))
        {		
     
     
        	if(!empty($_POST['valid']))
        	{
            $bddmembre2 = $bddreq->prepare("UPDATE validhs SET nom=:nom, datehs=:datehs, heure=:heure, com=:com, demande=:demande, valid=:valid WHERE id=:id");
    	$bddmembre2->execute(array(
    		':id' => $_POST['id'],
    		':nom' => $_POST['nom'],
    		':datehs' => $_POST['datehs'],
    		':heure' => $_POST['heure'],
    		':com' => $_POST['com'],
    		':demande' => $_POST['demande'],
    		':valid' => $_POST['valid']
    		));
     
        	}
        	else
        	{
        		$erreur = script;//= "tous les champs doivent être complete";
        	}
     
        }
     
        $reponse->closeCursor(); // Termine le traitement de la requête
        ?>   
     
        <a href="saisirh.php">RETOUR</a>

  16. #16
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    1/ Pour afficher les erreurs, ajoute en tête de fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    error_reporting(E_ALL);
    2/ Il faut aussi savoir faire le DEBOGAGE DE BASE :
    • afficher les variables : echo $....;
    • afficher les array : var_dump($....);
    • ...

    Pour voir où ça passe, et où ça casse.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  17. #17
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    Oups ! Mea culpa...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	 $prepare = $bdd->prepare('SELECT * FROM validhs WHERE id= :id ');
    	 $prepare->execute( array( ':id' => $id ));
     
    	 while ($donnees = $prepare->fetch()) // $prepare !!
    	 {
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    C'est good la page affiche bien les infos dans les champs du formulaire
    Sa bloque toujours au niveau de la page de traitement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
    header('Content-type:text/html; charset=UTF-8');	// encodage UTF-8
    error_reporting(E_ALL);
     
         $bddreq = new PDO('mysql:host=localhost;dbname=EMPL;charset=utf8', 'root', 'starwars');
         $id = intval($_GET["id"]);
     
        if(isset($_POST['submit']))
        {		
     
        	if(!empty($_POST['valid']))
        	{
            $bddmembre2 = $bddreq->prepare("UPDATE validhs SET nom=:nom, datehs=:datehs, heure=:heure, com=:com, demande=:demande, valid=:valid WHERE id=:id");
    		$bddmembre2->execute(array(
    		':id' => $_POST['id'],
    		':nom' => $_POST['nom'],
    		':datehs' => $_POST['datehs'],
    		':heure' => $_POST['heure'],
    		':com' => $_POST['com'],
    		':demande' => $_POST['demande'],
    		':valid' => $_POST['valid']
    		));
     
        	}
        	else
        	{
        		$erreur = script;//= "tous les champs doivent être complete";
        	}
     
        }
     
        $reponse->closeCursor(); // Termine le traitement de la requête
        ?>   
     
        <a href="saisirh.php">RETOUR</a>

  19. #19
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    9 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 9 881
    Points : 19 865
    Points
    19 865

    Par défaut

    Déjà, il faut enlever ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = intval($_GET["id"]);

    Ensuite...
    • mettre des echo (notamment à l'intérieur des if, pour voir si ça passe ou pas)
    • var_dump($_POST); pour voir si les données transmises sont OK


    Bref : voir / savoir où ça coince.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    octobre 2016
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : octobre 2016
    Messages : 38
    Points : 25
    Points
    25

    Par défaut

    Je viens de modifier
    J'ai fais également un test, les donnés sont bien transmises c'est juste que la page reste vierge.
    Elle ne fait pas apparaitre le lien "retour"
    Je vais creuser

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème de modification de tables via un formulaire
    Par maxmusix dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/05/2013, 16h08
  2. Réponses: 2
    Dernier message: 31/05/2012, 01h01
  3. [1.x] Problème de Modification du formulaire
    Par elec1984 dans le forum Symfony
    Réponses: 19
    Dernier message: 30/01/2012, 10h24
  4. problème formulaire précocher des cases pour modif
    Par Skeud007 dans le forum Formulaires
    Réponses: 4
    Dernier message: 14/10/2006, 21h58
  5. [débutant] Problème JSplitPane (modif :InternalFrame)
    Par pingoui dans le forum Fenêtres/Dialogues
    Réponses: 61
    Dernier message: 03/09/2004, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo