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. s il vous plait je suis débutant en php aide moi
    0
    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);


      --
      0
      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.
        0
        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)
          );
          0
          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>
            0
            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
              0