Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'insertion de données

    19 novembre 2017 à 10:51:44

    Bonjour, j'ai voulu créer un petit formulaire simple, mais rien ne s'insert dans la bdd :

    <!DOCTYPE html>
    <html>
        <head>
    		<link rel="stylesheet" href="css/global.css" />
            <meta charset="utf-8" />
            <title>Ajouter un client - CRM BYT</title>
        </head>
        <body>
    		<div id="corps">
    			<?php include ("inc/config.php"); ?>
    			<form method="post" action="addcustomer.php">
    				<p>
    					<label for="prenom">Prénom</label> : <input type="text" name="prenom" id="prenom"/>
    					<label for="nom">Nom</label> : <input type="text" name="nom" id="nom"/>
    					<label for="residence">Lieu de résidence</label> : <input type="text" name="residence" id="residence"/>
    					<label for="age">Age</label> : <input type="text" name="age" id="age"/>
    					<label for="telephone">Num. de téléphone</label> : <input type="text" name="telephone" id="telephone"/>
    					<input type="submit" value="Envoyer"/>
    				</p>
    			</form>
    			<?php
    				$requete = $bdd->prepare('INSERT INTO clients(prenom, nom, residence, age, telephone) VALUES(?, ?, ?, ?, ?)');
    				$requete->execute(array($_POST['prenom'], $_POST['nom'], $_POST['residence'], $_POST['age'], $_POST['telephone'], $_POST['nom']));
    			?>
    			<?php include ("inc/clients.php"); ?>
    		</div>
        </body>
    </html>

    Merci d'avance ! ;)

    • Partager sur Facebook
    • Partager sur Twitter
      19 novembre 2017 à 10:54:49

      Bonjour,

      Il faut commencer par activer les erreurs quand on développe (PDO notamment dans ce cas).

      Parce qu'ainsi ça serait assez évident : voir ligne 23.

      • Partager sur Facebook
      • Partager sur Twitter
        19 novembre 2017 à 11:44:02

        Bonjour. 

        juste un truc a quelle moment veut tu qu'il récupérer se que tu a écrit dans le champ de texte si le script est déjà terminé tu n'a pas de vérification sur si le bouton envoyer a bien été cliquer donc PHP effectue la requête au chargement de la page. 

        • Partager sur Facebook
        • Partager sur Twitter
          19 novembre 2017 à 11:45:23

          J'ai assez de mal avec les erreurs à afficher pour le moment.. J'ai tenté de suivre ce cours, mais je ne comprend pas vraiment.. Si on prend cet exemple de code dans le cours, je ne comprend pas vraiment ce qui se réfère à la détection des erreurs.. Dans quels sens sont mis les différents composants, à quoi sert chaque ligne etc, si vous pourriez tenter de m'éclairer ce serait carrément cool :)

          <?php
          try
          {
          	$pdo = new PDO('mysql:host=localhost;dbname=DBNAME', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ));
          	$stmt = $pdo->query('SELECT id, auteur, contenu, DATE_FORMAT(date, "%W %d %M %Y à %Hh%i") as date FROM messages');
          	$messages = $stmt->fetchAll(PDO::FETCH_OBJ);
          }
          catch(Exception $e)
          {
          	exit('<b>Catched exception at line '. $e->getLine() .' :</b> '. $e->getMessage());
          }
          foreach($messages as $message)
          {
          	echo '<p>Le ', $message->date, ' par ', $message->auteur, ' : <br />', $message->contenu, '</p>';
          }

          Merci d'avance !

          • Partager sur Facebook
          • Partager sur Twitter
            19 novembre 2017 à 12:37:50

            array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION

            te permet d'avoir une alerte en cas d'erreur dans ta requête. Rajoute cette partie à ton code et il t'indiquera un problème entre le nombre de  ? dans ta requête par rapport aux éléments de l'array dans l'execute. Je ne te fais pas mariner plus longtemps, tu as mis deux fois $_POST['nom']

            • Partager sur Facebook
            • Partager sur Twitter
              19 novembre 2017 à 17:33:08

              Oui oui, quand tu m'as dit la ligne, j'ai trouvé l'erreur ;) J'aimerais juste me familiariser avec le code, pour apprendre à détecter les erreurs seul. Comme je met toujours mon include de la config.php en début de page, ou placer le try, le catch et le array ? C'est vraiment pas pour que tu me mâche le travail, mais j'ai vraiment du mal à comprendre comment structurer mon code :p Au passage, j'ai ce code, mais ça ne fonctionne toujours pas, je continue à chercher.. : 

              <!DOCTYPE html>
              <html>
                  <head>
              		<link rel="stylesheet" href="css/global.css" />
                      <meta charset="utf-8" />
                      <title>Ajouter un client - CRM BYT</title>
                  </head>
                  <body>
              		<div id="corps">
              			<?php include ("inc/config.php"); ?>
              			<form method="post" action="addcustomer.php">
              				<p>
              					<label for="prenom">Prénom</label> : <input type="text" name="prenom" id="prenom"/>
              					<label for="nom">Nom</label> : <input type="text" name="nom" id="nom"/>
              					<label for="residence">Lieu de résidence</label> : <input type="text" name="residence" id="residence"/>
              					<label for="age">Age</label> : <input type="text" name="age" id="age"/>
              					<label for="chat">Chat</label> : <input type="text" name="chat" id="chat"/>
              					<label for="telephone">Num. de téléphone</label> : <input type="text" name="telephone" id="telephone"/>
              					<input type="submit" value="Envoyer"/>
              				</p>
              			</form>
              			<?php
              				$requete = $bdd->prepare('INSERT INTO clients(prenom, nom, residence, age, chat, telephone) VALUES(?, ?, ?, ?, ?, ?)');
              				$requete->execute(array($_POST['prenom'], $_POST['nom'], $_POST['residence'], $_POST['age'], $_POST['chat'], $_POST['telephone']));
              			?>
              			<?php include ("inc/clients.php"); ?>
              		</div>
                  </body>
              </html>



              Merci d'avance !

              -
              Edité par SheepBild 20 novembre 2017 à 21:13:59

              • Partager sur Facebook
              • Partager sur Twitter

              Problème d'insertion de données

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown