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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 chevronné 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
    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
    Membre averti
    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
    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
    Membre averti
    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
    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 !


+ Répondre à la discussion
Cette discussion est résolue.

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