Probleme dinsertion php/mysql

Résolu
Bonjour,
les amis j'ai un petit probleme avec l'insertion de données avec php et pdo ce code ne me revois aucune erreur mais lorsque j'accède a ma base de données les champs que j'ai ajouté ne s'affiche pas dans ma base de données.

voici mon code

========================================
<html>
<head>
<body><title> inscription    </title>
<form method="POST" action="inscr.php" >
numero :<input name="num" type="text"><br/>
nom :<input name="nom" type="text"><br/>
prenom :<input name="prenom" type="text"><br/>
<p>votre filiere</p>
<input type="radio" name="filiere" value="IMS" /><label>IMS</label> <br />
<input type="radio" name="filiere" value="ME" /><label>ME</label> <br />
<input type="radio" name="filiere" value="MT" /><label>MT</label> <br />
<p>votre option</p>

<select name="option">
<option value="CIM"> CIM </option>
<option value="MACRO"> MACRO </option>
<option value="MICRO"> MICRO </option>
<option value="MFE">MFE </option>
</select>
<p>votre sous_option</p> 
<select name="sous_option"> 
<option value="ERE"> ERE </option>
<option value="AERO"> AERO </option>
<option value="ENER"> ENER </option>
<option value="VINCI">VINCI </option>
<option value="VINCI">ASS </option>
<option value="VINCI">STCM </option>
</select><br/><br/>

<input name="ok" type="submit"   value="ok"><br/>
</form>

<?php
if (isset($_POST['ok'])){
/*  $num=$_POST['num'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $filiere=$_POST['filiere'];
    $option=$_POST['option'];
    $sous_option=$_POST['sous_option'];  */

try{                                   
$bdd = new PDO('mysql:host=localhost;dbname=sousstech', 'root', '');
}catch(Exception $e) {die('Erreur :'.$e->getMessage());}

  /*$bdd->exec('insert into elève (ID_Eleve, Nom_ELEVE,Prenom_ELEVE,Filiere,Option,Sous_option)
 values( "'.$num.'","'.$nom.'","'.$prenom.'","'.$filiere.'","'.$option.'","'.$sous_option.'")');  */

$req = $bdd->prepare('INSERT INTO elève (ID_Eleve, Nom_ELEVE,Prenom_ELEVE,Filiere,Option,Sous_option) VALUES(?,?,?,?,?,?)');
$req->execute(array($_POST['num'],$_POST['nom'],$_POST['prenom'],$_POST['filiere'],$_POST['option'],$_POST['sous_option']));


echo 'insertion effectuer';

}
?>



</body>
</html>

===========================

8 réponses

  1. voila mon code eleve
    ==============
    CREATE TABLE 'elève' (
      'ID_Eleve' mediumint(8) unsigned NOT NULL COMMENT 'N°etudiant',
      'Nom_ELEVE' varchar(20) collate utf8_unicode_ci NOT NULL,
      'Prenom_ELEVE' varchar(20) collate utf8_unicode_ci NOT NULL,
      'Filiere' enum('IMS','ME','MT') collate utf8_unicode_ci default NULL,
      'Option' enum('CIM','MACRO','MICRO','MFE') collate utf8_unicode_ci default NULL,
      'Sous_option' enum('ERE','AERO','ENER','VINCI','ASS','STCM') collate utf8_unicode_ci default NULL,
      PRIMARY KEY  ('ID_Eleve')
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


    Contenu de la table 'elève'
    INSERT INTO 'elève' ('ID_Eleve', 'Nom_ELEVE', 'Prenom_ELEVE', 'Filiere', 'Option', 'Sous_option') VALUES
    (9876523, 'KEZIBRI', 'Nouamane', 'ME', NULL, NULL),
    (12356789, 'QACHFAR', 'Oumaima', 'IMS', NULL, NULL);


    --
    1. Premiere étape:
      fais un echo de ta requete, copie la requete qui s'affiche a l'ecran et passe la directement a ta BDD pour voir si la requete est correctement construite.
      1. Créé ta table comme ça:
        CREATE TABLE eleve (
        ID_Eleve INT UNSIGNED NOT NULL AUTO_INCREMENT,
        Nom_ELEVE varchar(20) NOT NULL,
        Prenom_ELEVE varchar(20) NOT NULL,
        Filiere enum('IMS','ME','MT') default NULL,
        nom_Option enum('CIM','MACRO','MICRO','MFE') default NULL,
        Sous_option enum('ERE','AERO','ENER','VINCI','ASS','STCM') default NULL,
        PRIMARY KEY (ID_Eleve)
        );
        1. Bonjour,
          Je suis trés pressé, voila un correctif. jen'ai maheuresement pas le temps de t'exmplquer.
          Etudie ce code et pose des questions, j'y repondrai demain.

          Et il y a beaucoups de chose pas super dans ton code, on en reparlera.

          ta table a recréer avec ce nouveau code:
          CREATE TABLE eleve (
          ID_Eleve INT UNSIGNED NOT NULL AUTO_INCREMENT,
          Nom_ELEVE varchar(20) NOT NULL,
          Prenom_ELEVE varchar(20) NOT NULL,
          Filiere enum('IMS','ME','MT') default NULL,
          nom_Option enum('CIM','MACRO','MICRO','MFE') default NULL,
          Sous_option enum('ERE','AERO','ENER','VINCI','ASS','STCM') default NULL,
          PRIMARY KEY (ID_Eleve)
          );


          Ton code de page:
          <?php

          /**
          * Classe implémentant le singleton pour PDO
          * @author Savageman
          */

          class PDO2 extends PDO {

          private static $_instance;

          /* Constructeur : héritage public obligatoire par héritage de PDO */
          public function __construct( ) {

          }
          // End of PDO2::__construct() */

          /* Singleton */
          public static function getInstance() {

          if (!isset(self::$_instance)) {

          try {

          self::$_instance = new PDO('mysql:host=localhost;dbname=sousstech', 'root', '');

          } catch (PDOException $e) {

          echo $e;
          }
          }
          return self::$_instance;
          }
          // End of PDO2::getInstance() */
          }

          function submit_request($sql){
          $pdo = PDO2::getInstance();
          $resultats = $pdo->prepare($sql);
          if ($resultats->execute()) {
          // $result = $resultats->fetchAll();
          $result = $resultats->fetchALL(PDO::FETCH_ASSOC);
          return $result;
          }
          return $resultats->errorInfo();
          }
          ?>
          <html>
          <head>
          <body><title> inscription </title>
          <form method="POST" action="#" >
          numero :<input name="num" type="text"><br/>
          nom :<input name="nom" type="text"><br/>
          prenom :<input name="prenom" type="text"><br/>
          <p>votre filiere</p>
          <input type="radio" name="filiere" value="IMS" /><label>IMS</label> <br />
          <input type="radio" name="filiere" value="ME" /><label>ME</label> <br />
          <input type="radio" name="filiere" value="MT" /><label>MT</label> <br />
          <p>votre option</p>

          <select name="option">
          <option value="CIM"> CIM </option>
          <option value="MACRO"> MACRO </option>
          <option value="MICRO"> MICRO </option>
          <option value="MFE">MFE </option>
          </select>
          <p>votre sous_option</p>
          <select name="sous_option">
          <option value="ERE"> ERE </option>
          <option value="AERO"> AERO </option>
          <option value="ENER"> ENER </option>
          <option value="VINCI">VINCI </option>
          <option value="VINCI">ASS </option>
          <option value="VINCI">STCM </option>
          </select><br/><br/>

          <input name="ok" type="submit" value="ok"><br/>
          </form>

          <?php
          if (isset($_POST['ok'])){
          /* $num=$_POST['num'];
          $nom=$_POST['nom'];
          $prenom=$_POST['prenom'];
          $filiere=$_POST['filiere'];
          $option=$_POST['option'];
          $sous_option=$_POST['sous_option']; */

          /*$bdd->exec('insert into elève (ID_Eleve, Nom_ELEVE,Prenom_ELEVE,Filiere,Option,Sous_option)
          values( "'.$num.'","'.$nom.'","'.$prenom.'","'.$filiere.'","'.$option.'","'.$sous_option.'")'); */

          $requete="INSERT INTO eleve('Nom_ELEVE',
          'Prenom_ELEVE',
          'Filiere',
          'nom_Option',
          'Sous_option')
          VALUES( '".$_POST['nom']."',
          '".$_POST['prenom']."',
          '".$_POST['filiere']."',
          '".$_POST['option']."',
          '".$_POST['sous_option']."'
          )";

          echo $requete;
          $result=submit_request($requete);

          echo '</br>insertion effectuer';

          }
          ?>

          </body>
          </html>
          1. merci mon amis pour tes conseils j vais essayé de les appliquer , en effet je suis entraine de débuter en php si vous avez un bon tuto ca sera utile pr moi.
            merci