Champ NULL

Bonsoir

je viens de réaliser une plateform de gestion des structure de recherche, dans le formulaire de l'ajout d'un chercheur , il y a le champ structure qui est une clé etrangere (les structure dans lesquelles il participe) , c'est une liste roulante dynamique (libellé de la table structure).

mais le prob que la relation chercheur-structure est 0-N.

j'ai ajouté "aucun" mais le prob que lorsque je choisi aucun l'ajout ne se fait pas.

3 réponses

  1. Modérateur
    Bonjour
    merci de coller le code directement sur le forum en prenant soin d'utiliser les balises de code
    (Le php + le formulaire html)
    1. <?php
      
      if(isset($_POST["ajouter"]))
      {
              $NCIN= $_POST['NCIN'];
              $nom=$_POST['nom'];
              $prenom=$_POST['prenom'];
        $dn=$_POST['dn'];
              $fonction=$_POST['fonction'];
              $etablissement=$_POST['etablissement'];
              $dp=$_POST['dp'];
              $ap=$_POST['ap'];
        $ae=$_POST['ae'];
        $nt=$_POST['nt'];
        $np=$_POST['np'];
        if(isset($_POST['structure']) == "aucune" ) { 
        $structure = NULL ; } else {
        $structure=$_POST['structure'];}
        
               
      
      
              $connexion=mysqli_connect("localhost","root","");
              if(!$connexion){
              echo"connexion impossible\n";
              exit;}
              if(!(mysqli_select_db($connexion,"gestion2"))){
              echo"Désolé, accès à la base impossible\n";
              exit;}
              $requete = "INSERT INTO chercheur (NCIN, nom, prenom, date_naissance, fonction, etablissement, dernier_diplome, adresse_postale, adresse_electronique, numero_telephone, numero_passeport, structure)
              VALUES('$NCIN', '$nom', '$prenom', '$dn', '$fonction', '$etablissement','$dp' ,'$ap' ,'$ae' ,'$nt' ,'$np', '$structure')";
              $result=mysqli_query($connexion,$requete);
      
              
              if($result>0)
              {
                  $erreur="succées d'ajout";
              }else{
                  $erreur="Echec d'ajout";
              }
      
      
      }
      
      ?>


      <form role="form" action="<?php  echo $_SERVER['PHP_SELF']; ?>" method="post">
                              <div class="row">
                              <div class="col-lg-6">
                                  <div class="form-group">
                                      <label>NCIN</label>
                                      <input type="text" class="form-control" name="NCIN">
                                  </div>
                                  <div class="form-group">
                                      <label>Nom</label>
                                      <input type="text" class="form-control" name="nom">
                                  </div>
                                  <div class="form-group">
                                      <label>Prénom</label>
                                      <input type="text" class="form-control" name="prenom">
                                  </div>
                                  <div class="form-group">
                                      <label>Date De Naissance</label>
                                      <input type="date" class="form-control" name="dn">
                                  </div>
                                   <div class="form-group">
                                      <label>Numéro De téléphone</label>
                                      <input type="text" class="form-control" name="nt">
                                  </div>
                                   <div class="form-group">
                                      <label>Numéro De Passeport</label>
                                      <input type="text" class="form-control" name="np">
                                  </div>
                                  </div>
                             
                                       <div class="col-lg-6">
                                  <div class="form-group">
                                      <label>Fonction</label>
                                     
                                      <SELECT name="fonction" maxlength="255" class="form-control">
      <OPTION VALUE="enseignant">Enseignant universitaire</OPTION>
      <OPTION VALUE="etudiant">Etudiant</OPTION>
      <OPTION VALUE="ingenieur">Ingénieur</OPTION>
      <OPTION VALUE="retraite">Mastere Recherche</OPTION>
      <OPTION VALUE="retraite">Thesards</OPTION>
      <OPTION VALUE="autre">Autres</OPTION>
      </SELECT>
      </div>
                                   <div class="form-group">
                                      <label>Etablissement</label>
                                     
                                     <SELECT name="etablissement" maxlength="255" class="form-control">
      
      <?php 
      $connexion=mysqli_connect("localhost","root","");
      if(!$connexion){
      echo"connexion impossible\n";
      exit;}
      if(!(mysqli_select_db($connexion,"gestion2"))){
      echo"Désolé, accès à la base impossible\n";
      exit;}
         $sql="select * from etablissement";
         $resultat=mysqli_query($connexion,$sql);
         
         
         while($res=mysqli_fetch_array($resultat))
         {
         echo "<option value='".$res['code']."'> ".utf8_encode($res['libelle'])."</option>";
         }
         echo "</select>";
        
        
      ?>
      
      </div>
                                  <div class="form-group">
                                      <label>Dernier Diplome</label>
                                      <input type="text" class="form-control" name="dp">
                                  </div>
                                   <div class="form-group">
                                      <label>Adresse Postale</label>
                                      <input type="text" class="form-control" name="ap">
                                  </div>
                                   <div class="form-group">
                                      <label>Adresse Electronique</label>
                                      <input type="email" class="form-control" name="ae">
                                  </div>
                                 
                                  <div class="form-group">
                                      <label>Structure</label>
                                     
                                     <SELECT name="structure" maxlength="255" class="form-control">
      <OPTION name="aucune" value="aucune" >aucune</OPTION>
      <?php 
      $connexion=mysqli_connect("localhost","root","");
      if(!$connexion){
      echo"connexion impossible\n";
      exit;}
      if(!(mysqli_select_db($connexion,"gestion2"))){
      echo"Désolé, accès à la base impossible\n";
      exit;}
         $sql="select * from structure";
         $resultat=mysqli_query($connexion,$sql);
         
         
         while($res=mysqli_fetch_array($resultat))
         {
         echo "<option value='".$res['code']."'> ".utf8_encode($res['libelle'])."</option>";
         }
         echo "</select>";
            
       
      ?>
      </SELECT>
      </div>  </div> 
      
      
                                 </div><br> <br>  
                                 <div class="intro-text text-center">
                                 <p><button type="submit" class="btn btn-dark btn-lg"  name="ajouter" title="Submit">Ajouter
                                </button>
                                 </div>
                                 
                                 
                          </form>
      


      EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
      Explications disponibles ici : ICI

      Merci d'y penser dans tes prochains messages.
      1. Modérateur
        Hello,

        Donc.. déjà ... commence par séparer la connexion à ta BDD en la mettant dans un autre fichier que tu n'auras qu'à inclure lorsque tu en as besoin.
        Cela t'évitera de devoir la copier/coller dans toutes tes pages ......

        Ensuite, récupère PROPREMENT les variables AVANT de les utiliser.
        https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index

        Puis après ça ...
        Fais un
         print_r($_POST);
        pour voir ce que donne ton formulaire.