IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

formulaire modification [PHP 5.0]


Sujet :

Langage PHP

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    417
    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 : 417
    Points : 632
    Points
    632
    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
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    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.

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    Par défaut
    Et alors ?

    C'est le même principe !


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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    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.
    Dernière modification par Invité ; 21/04/2017 à 13h52.

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    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)

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    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']
    		));

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    Par défaut
    Voir mon message précédent.

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    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.

  17. #17
    Invité
    Invité(e)
    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 !!
    	 {

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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
    Invité
    Invité(e)
    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.

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

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Octobre 2016
    Messages : 41
    Points : 26
    Points
    26
    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 Langage
    Réponses: 4
    Dernier message: 14/10/2006, 21h58
  5. [débutant] Problème JSplitPane (modif :InternalFrame)
    Par pingoui dans le forum Agents de placement/Fenêtres
    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