Problème pour envoyer les informations dans la bd

Résolu
Bonjour,

Je rencontre actuellement un problème pour envoyer les données dans ma base de donnée voici mon code :
          <?php
         if(isset($POST['valider']))
    {
        mysqli_connect("localhost","root","");
        mysqli_select_db("####");
        if(!$connection)
        {
            die('Erreur de connection'.mysqli_connect_error());
        }
        $nomCli = $_POST['nomCli'];
        $mailCli = $_POST['mailCli'];
        $pnomCli = $_POST['pnomCli'];
        $datNaisCli = $_POST['datNaisCli'];
        $vilCli = $_POST['vilCli'];
        $cpCli = $_POST['cpCli'];
        $adresCli = $_POST['adresCli'];
        $telCli = $_POST['telCli'];
        $mdpCli = $_POST['mdpCli'];
        
        $sql="INSERT INTO client( numCli , nomCli , pnomCli , mailCli , mdpCli , vilCli , adresCli , cpCli , telCli , datNaisCli ) VALUES( ' ', '$nomCli' , '$pnomCli' , '$mailCli' , '$mdpCli' , '$vilCli' , '$adresCli' , '$cpCli' , '$telCli' , '$datNaisCli') ;";
        
        if(!mysqli_query($connection, $sql))
        {
            die('ERREUR');
        }
        else
        {
        echo "Les info sont bien stockés";
        }
    }
    ?>


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  1. Modérateur
    Salut,

    Sans regarder la syntaxe, intéressons nous à la logique.

    Tu initialises comment ton numéro de client ?

    Car là tu lui mets un blanc. Soit il attend un numéro et c'est une erreur, soit le programme plante à la deuxième création car tu essaies de créer un second client de même identifiant (un blanc).

    cdlt
    0
    1. Salut pour le numéro client j'ai laissé un blanc puisque je l'ai mis en auto-incrément dans la BD que dois-je faire pour remédier au probleme?
      0
    2. Modérateur
      @GlobeVer9S'il est en auto incrément, l'id ne doit pas apparaitre dans l'insert
      0
    3. Modérateur
      @jee pee

      S'il est en auto incrément, l'id ne doit pas apparaitre dans l'insert
      En fait tu peux ... mais ce n'est ni utile ni conseillé
      (et en général .. on le met à NULL et non '' )
      0
    4. Modérateur
      @jordane45là ce n'est pas '', c'est ' ', un blanc entre simple cote
      0
    5. Ok je le retire
      0
  2. Modérateur
    Bonjour,

    Fais donc un echo de ta variabe $sql
    Puis, avec le résultat de ce echo...vas tester ta requete DIRECTEMENT dans ta BDD (via phpmyadmin par exemple)
    0
    1. J'ai fait un echo $sql; et j'ai tester la requete dans la bd ce message apparait:
      MySQL a retourné un résultat vide (aucune ligne)
      0
    2. Modérateur
      @GlobeVer9donc pas d'erreur
      Mais ... est-ce que l'insertion s'est faite dans ta BDD ?
      0
    3. Oui ça a insérer $nomCli, ...
      0
    4. Modérateur
      @GlobeVer9heuuu.... je reprend...
      Tu fais un ECHO de ta requête ... ( normalement ça aura remplacé les variables par de "vraies" valeurs )
      Tu copie ce que le echo ta donné pour le tester dans ta BDD.

      Je ne t'ai pas demandé de testé la requête (de ton code source)... mais bien celle GÉNÉRÉE par ton code lorsque tu affiches ta page !!!!
      0
    5. Le echo ne m'a rien renvoyer
      0
  3. Modérateur
    C'est normal que rien ne s'affiche .... tu ne retnres pas dans ton if
    if(isset($POST['valider']))
    

    ... $_POST et non $POST !!!!

    Voila ton code corrigé et "amélioré"

    Déjà .. place le code de connexion à ta BDD dans un fichier à part
    que tu n'auras qu'à inclure dans tes page
    <?php //fichier de connexion à la bdd : cnxBdd.php
    $connection=  mysqli_connect('localhost','root','','#####');
    if(!$connection) {
      die('Erreur de connection'.mysqli_connect_error());
    }
            
    ?>
    


    Pense aussi à récupérer PROPREMENT les variables AVANT de les utiliser.
    Ajoutes également la ligne error_reporting(E_ALL); pour afficher les erreurs php

    Ton code devient :
    <?php
    //Affichage des erreurs php
    error_reporting(E_ALL);
    
    // Connexion à la BDD
    require_once "cnxBdd.php";
    
     // Récupération PROPRE des variables AVANT de les utiliser
     function getVar($varName){
      return isset($_POST[$varName]) ? $_POST[$varName] : NULL;
     }
     
    $nomCli = getVar('nomCli') ;
    $mailCli =  getVar('mailCli');
    $pnomCli =  getVar('pnomCli');
    $datNaisCli =  getVar('datNaisCli');
    $vilCli =  getVar('vilCli');
    $cpCli =  getVar('cpCli');
    $adresCli =  getVar('adresCli');
    $telCli =  getVar('telCli');
    $mdpCli =  getVar('mdpCli');
        
    
    if(isset($_POST['valider'])) {
            
     $sql="INSERT INTO client( nomCli , pnomCli , mailCli , mdpCli , vilCli , adresCli , cpCli , telCli , datNaisCli ) 
                       VALUES('$nomCli' , '$pnomCli' , '$mailCli' , '$mdpCli' , '$vilCli' , '$adresCli' , '$cpCli' , '$telCli' , '$datNaisCli')";
     
     echo "<br> La requete est :<br>".$sql;//le temps des tests
     
     if(!mysqli_query($connection, $sql)){
       die('ERREUR');
     }else{
        echo "Les info sont bien stockés";
     }      
    
    }
    
    0
    1. Je viens de tester et les "echo" ne s'affichent toujours pas et la BD n'est pas renseignée
      0
    2. <! DOCTYPE HTML >

      <html>
      <head>
      <title>########</title>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width" />
      <link href="css/bootstrap.min.css" rel="stylesheet" />
      <link href="css/bootstrap-responsive.min.css" rel="stylesheet" />
      <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
      <script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
      <script src="js/bootstrap.min.js"></script>
      <link rel="stylesheet" type="text/css" href="CSSPerso/CssMenuDeroulant.css">
      </head>
      <?php include("Entete.php");?> <!-- Sert a inserer l'entete -->

      <body>
      <form>
      <div class = "forme-groupe">
      <center><label> Entrer votre e-mail </label></center>
      <center><input type =" input " name="mailCli"></center>
      </div>
      <br>
      <div class = "forme-groupe">
      <center><label> Confirmer votre mot de passe </label></center>
      <center><input type =" input " name="mailCli2"></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label> Entrer votre nom </label></center>
      <center><input type="input" name="nomCli" ></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre prenom</label></center>
      <center><input type="input" name="pnomCli"></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre date de naissance (sous le format JJMMAAAA)</label></center>
      <center><input type="input" name="datNaisCli"</center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre ville</label></center>
      <center><input type="input" name="vilCli"></center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre adresse</label></center>
      <center><input type="input" name="adresCli"</center>
      </div>
      <br>

      <div class="forme-groupe">
      <center><label>Entrer votre code postal</label></center>
      <center><input type="input" name="cpCli"</center>
      </div>
      <br>
      <div class="forme-groupe">
      <center><label>Entrer votre numero de telephone</label></center>
      <center><input type="input" name="telCli"</center>
      <br>
      <div class = "forme-groupe">
      <center><label> Entrer votre mot de passe </label></center>
      <center><input type ="input" name="mdpCli"></center>
      </div>
      <br>
      <div class = "forme-groupe">
      <center><label> Confirmer votre mot de passe </label></center>
      <center><input type =" input " name="mdpCli2"></center>
      </div>

      <br>
      <center><button type="submit" name="valider" class="btn btn-default">Créer le compte</button></center>

      <?php
      //Affichage des erreurs php
      error_reporting(E_ALL);

      // Connexion à la BDD
      require_once "cnxBdd.php";

      // Récupération PROPRE des variables AVANT de les utiliser
      function getVar($varName){
      return isset($_POST[$varName]) ? $_POST[$varName] : NULL;
      }

      $nomCli = getVar('nomCli') ;
      $mailCli = getVar('mailCli');
      $pnomCli = getVar('pnomCli');
      $datNaisCli = getVar('datNaisCli');
      $vilCli = getVar('vilCli');
      $cpCli = getVar('cpCli');
      $adresCli = getVar('adresCli');
      $telCli = getVar('telCli');
      $mdpCli = getVar('mdpCli');

      if(isset($_POST['valider'])) {

      $sql="INSERT INTO client( nomCli , pnomCli , mailCli , mdpCli , vilCli , adresCli , cpCli , telCli , datNaisCli )
      VALUES('$nomCli' , '$pnomCli' , '$mailCli' , '$mdpCli' , '$vilCli' , '$adresCli' , '$cpCli' , '$telCli' , '$datNaisCli')";

      echo "<br> La requete est :<br>".$sql;//le temps des tests

      if(!mysqli_query($connection, $sql)){
      die('ERREUR');
      }else{
      echo "Les info sont bien stockés";
      }

      }
      ?>
      <br>
      <p class="text-center"> Vous avez déja un compte</p>
      <p class="text-center"> <a href="SeConnecter.php"> Cliquez ici !</a></p>
      </form>

      </body>

      </html>
      0
    3. Modérateur
      @GlobeVer9**** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .

      **** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .

      **** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .
      *

      !!!!!!
      0
    4. Modérateur
      @jordane45Peux tu faire un
       print_r($_POST);

      Au début de ton code (avant le IF ) et me coller le résultat ?
      0
    5. ca m'affiche ca : Array ( ) en bas de l'cran il te faut un screan?
      0