Partage
  • Partager sur Facebook
  • Partager sur Twitter

(formulaire) Message d'erreur : Erreur de syntaxe

Sujet résolu
    6 avril 2020 à 8:23:56

    Bonjour, alors voilà sa fais 2 jour que j'essaye de crée un simple formulaire de 7 informations, mon parcours ? 

    Utiliser mes cours qui sont ancien et non approprié pour PHP7 , installer  xampp PHP5 , bug beaucoup donc jai réinstaller PHP7 avec car jai compris qu'il fallait changer mysql par mysqli mais impossible d'installer car jai mal desinstaller l'ancien logiciel, donc je suis passer à wampp, j'ai vu que mysqli n'étais pas le seul problème et 0 aide sur internet car sa ne parle que de POO , abandonner mes cours pour passer à la POO ( avec le déconseil de ma professeur car c'est un niveau BTS et je suis en terminale ), copier coller des formulaire juste pour vérifier si ils marchent ou pas ( car passer toute la nuit sa fatigue et m'empêche de réfléchir), après vérification j'ai essayé de comprendre le code, pour ensuite le réutiliser sur ma page, puis me retrouver avec des Erreur de Syntax et une erreur de bind_param ( que j'ai réussi à règler ).. oui je suis fier pour la fin  :soleil:


    Sérieuseument j'y ai passé toute la nuit il est 8:19 je n'arrive toujours pas à insérer des donnée dans ma base de donnée..

    voici mon erreur et code : Message d'erreur : Erreur de syntaxe pr�s de ' , , , , ) VALUES('',?, ?, ?, ?, ?, ?)' � la ligne 1

    J'ai compris que c'était une erreur du à ma requête mais j'ai retourner la ligne de ' " $ , . rien n'y faire, j'ai cherché sur internet mais c'est flou alors je ne peux demander que votre aide simplement pour crée un formulaire qui marche. C'est vraiment dommage car j'aime beaucoup la programmation mais c'est vraiment à s'y cogner la tête contre le mur..


     
            <?php
      // Vérifie qu'il provient d'un formulaire
      if ($_SERVER["REQUEST_METHOD"] == "POST") {
        //identifiants mysql
        $host = "localhost";
        $username = "root";
        $password = "";
        $database = "Utilisateur";
        
        $Prénom = $_POST["Prénom"]; 
    	 $Nom = $_POST["Nom"]; 
    	  $Pseudo = $_POST["Pseudo"]; 
    	   $DateN = $_POST["DateN"]; 
    	    $Genre = $_POST["Genre"]; 
        $Email = $_POST["Email"];
       
        //Ouvrir une nouvelle connexion au serveur MySQL
        $mysqli = new mysqli($host, $username, $password, $database);
        
        //Afficher toute erreur de connexion
        if ($mysqli->connect_error) {
          die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
        }  
        
        //préparer la requête d'insertion SQL
        $statement = $mysqli->prepare("INSERT INTO inscription ($Prénom, $Nom, $Pseudo, $DateN, $Genre, $Email) VALUES('',?, ?, ?, ?, ?, ?)"); 
    	if ($statement === false) {
     printf("Message d'erreur : %s\n", $mysqli->error);
    die();
    }
        //Associer les valeurs et exécuter la requête d'insertion
        $statement->bind_param('ssssss', $Prénom, $Nom, $Pseudo, $DateN, $Genre, $Email); 
        
        if($statement->execute()){
          print "Salut " . $Nom . "!, votre adresse e-mail est ". $Email;
        }else{
          print $mysqli->error; 
        }
      }
    ?>


    Merci à ceux qui me répondront !

    -
    Edité par JalSize 6 avril 2020 à 9:16:30

    • Partager sur Facebook
    • Partager sur Twitter
      6 avril 2020 à 8:51:25

      Bonjour,

      Evites les accents dans les nom de variable. Dans ta requête tu nomes 6 champs pour une transmission de 7 valeurs.

      • Partager sur Facebook
      • Partager sur Twitter
      Merci de signaler votre sujet résolu, cela nous évite des pages de lecture inutile pour arriver au bout de 15 réponses sur la dernière qui dit "merci problème résolut!"
        6 avril 2020 à 8:54:40

        C'est fait j'ai enlevé les accents et la 7ème valeur est l'ID qui est auto-incrémenté. Mais toujours le même problème rien n'y change..

        Merci pour ta réponse !

        • Partager sur Facebook
        • Partager sur Twitter
          6 avril 2020 à 8:57:11

          Salut !

          Pour commencer, on ne met jamais d'accent sur les variables, donc enlève le é de $Prénom. Petit conseil, ne commence jamais les variables par des majuscules non plus.

          Ensuite, voici ta requête :

          INSERT INTO inscription ($Prénom, $Nom, $Pseudo, $DateN, $Genre, $Email) VALUES('',?, ?, ?, ?, ?, ?)

          Je vois 2 erreurs :

          • La première c'est qu'au lieu de mettre tes noms de colonne dans les premières parenthèses, tu mets des variables.
          • La 2ème c'est que dans tes premières parenthèses tu as 6 colonnes et dans tes secondes parenthèses tu as 7 valeurs. Il doit forcément y avoir le même nombre d'éléments dans les 2 parenthèses.
          Voici un exemple d'insert :
          INSERT INTO table (nom_colonne_1, nom_colonne_2, ...
           VALUES (?, ?, ...)

          Tu devrais donc essayer d'enlever le '' dans les parenthèses VALUES pour avoir :

          VALUES(?, ?, ?, ?, ?, ?)
          • Partager sur Facebook
          • Partager sur Twitter
            6 avril 2020 à 9:07:31 - Message modéré pour le motif suivant : La demande de l'équipe de modération a été honorée.


            Pas d'aide concernant le code par MP, le forum est là pour ça :)

              6 avril 2020 à 9:14:37

              Tout d'abord, merci énormément pour vos réponses !

              Vous m'avez sauvé et appris beaucoup en si peu de temps !

              Je vais pouvoir allez dormir tranquillement maintenant.

              Et je vous souhaite bon courage !

              • Partager sur Facebook
              • Partager sur Twitter

              (formulaire) Message d'erreur : Erreur de syntaxe

              × 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