IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

enregistrer les données d'un formulaire dans une base de données mysql


Sujet :

PHP & Base de données

  1. #1
    Inactif  
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut enregistrer les données d'un formulaire dans une base de données mysql
    bonjour tout le monde
    j'ai un formulaire contient nom, prénom et bouton valider
    je remplis le formulaire, je valide , j'obtiens message d’erreur :

    ( ! ) Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\coursphp1_\gynéco_html\a99_.php on line 22
    voici mon code:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    $pdo = null;
    $dsn='mysql: host=localhost; dbname=basessai1'; /* nom de ma base est "basessai1"*/
    $dbUser='root'; /*user de ma base myphpadmin*/
    $pw='';/*passewode*/
    try{
            $pdo = new PDO ($dsn, $dbUser, $pw);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
    catch (PDOException $e) {
                                  echo 'Connection failed:' . $e->getMessage();
                            }
    $pdo ->query("SET NAMES UTF8");//solution encodage UFT8
    return $pdo;
    if (isset($_POST['submit']))
    {
            if(isset(['nom'], $_POST['prenom']))
            {
                    if($_POST['nom'] !=""&&$_POST['prenom'] !="")
                     {
                        //ENRG
                      $insertion="INSERT INTO tablessai1(nom,prenom)VALUES($_POST['nom'], $_POST['prenom'])";  /* voici ma ligne d'erreur , */
                        $execute = $pdo->query($insertion);//
                         if($execute==true)
                         {
                            $msgSuccess="information enregistrées avec succes";
                         }  else  
                            {
                                     $msgError="l'enregistrement n'a pas pu etre effectuer";
                             }
                    }
            }
    }
    ?>
     <div> 
    <?php 
    if(isset($msgError)){ echo $msgError;}elseif (isset(($msgSuccess)){echo $msgSuccess;
    }
    ?>
     </div>
        	<form method="POST" action="a99_.php"> /*mon fichier php, son nom est a99_*/
        <p>
    		<input type="text" name="nom" placeholder="nom"> <br> <br>
        <input type="text" name="prenom" placeholder="prenom"> <br> <br>
        <button type="submit" name="submit">valider</button>
    </p>
          </form>
    le bute est d'enregistrée les information inscrit dans le formulaire dans ma base de donnée


    Nom : Capturef1.PNG
Affichages : 2245
Taille : 74,1 Ko


    dans l'attente, merci pour vos corrections et aide
    agréable journée

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Bonjour,
    Votre id est -il en autoincrements ?

    pouvez-vous nous montrer la structure de votre table ?

  3. #3
    Inactif  
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut enregistrer les donnée d'un formulaire dans une base de donnée mysql
    bonjour
    merci pour votre réponse,
    mon id est non pas en autou-icrémente, car j'ai pas pu le faire, id numérique est en clé primaire,
    la structure de ma base n'est pas a ma porté, le soir je vous fais capture et merci
    bonne journée

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Bonjour, la réponse est simple
    Si le id n'est pas auto-incrémenté mais en primarykey, il est alors obligatoire
    Il manque donc une info dans votre requête.

    Voici un exemple qui devrais passer une fois (en comptant que id ne comporte pas déjà le nombre 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $insertion="INSERT INTO tablessai1(id,nom,prenom)VALUES(2,$_POST['nom'], $_POST['prenom'])";

  5. #5
    Inactif  
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut enregistrer les donnée d'un formulaire dans une base de donnée mysql
    bonsoir, merci pour votre suggestion
    dommage ça ne marche pas , toujours le même message d'erreur sur la même ligne, et de même si je remplace '2' par 'null' c 'est pareil
    voici une capture de ma base mysql

    Nom : Capturef2.PNG
Affichages : 2135
Taille : 69,2 Ko

    agreable soirée

  6. #6
    Inactif  
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut
    bonsoir l'equipe
    finalement c'était un problème de syntaxe, c'était mieux d'écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $insertion="INSERT INTO tb1(nom,prenom)VALUES(?,?])"
    après exécution du code, le message erreur sera au niveau "isset" tel que
    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
        	<?php
    $pdo = null;
    $dsn='mysql: host=localhost; dbname=ab1'; /* nom de ma base est "ab1"*/
    $dbUser='root'; /*user de ma base myphpadmin*/
    $pw='';/*passewode*/
    try{
            $pdo = new PDO ($dsn, $dbUser, $pw);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
    catch (PDOException $e) {
                                  echo 'Connection failed:' . $e->getMessage();
                            }
    $pdo ->query("SET NAMES UTF8");//solution encodage UFT8
    return $pdo;
    if (isset($_POST['submit']))
    {
            if(isset(['nom'], $_POST['prenom'])) /* voici ma ligne d'erreur , */
            {
                    if($_POST['nom'] !=""&& $_POST['prenom'] !="")
                     {
                        //ENRG
                      $insertion="INSERT INTO tb1(nom,prenom)VALUES(?,?])";  
                        $execute = $pdo->query($insertion);//
                         if($execute==true)
                         {
                            $msgSuccess="information enregistrées avec succes";
                         }  else  
                            {
                                     $msgError="l'enregistrement n'a pas pu etre effectuer";
                             }
                    }
            }
    }
    ?>
     <div> 
    <?php 
    if(isset($msgError)){ echo $msgError; }elseif  (isset($msgSuccess)){echo $msgSuccess;}
    ?>
     </div>
    
    
    
    
            <form method="POST" action="ab9.php"> 
        <p>
    		<input type="text" name="nom" placeholder="nom"> <br> <br>
        <input type="text" name="prenom" placeholder="prenom"> <br> <br>
        <button type="submit" name="submit">valider</button>
    </p>
          </form>

    mon message d'erreur est :

    ( ! ) Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in C:\wamp\www\coursphp1_\gynéco_html\ab9.php

    la je n'arrive pas à interpréter mon message d'erreur

    voici capture de ma base

    Nom : Capture2.PNG
Affichages : 2052
Taille : 55,9 Ko

    merci pour vos suggestions
    agréable soirée

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 502
    Par défaut
    Bonjour,

    Il manque un POST dans le isset()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    // if(isset(['nom'], $_POST['prenom']))
     if(isset($_POST['nom'], $_POST['prenom']))
    Il y a aussi une erreur de syntaxe dans le insert into

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Il y a un ] de trop
    //$insertion="INSERT INTO tb1(nom,prenom)VALUES(?,?])"
     
    $insertion="INSERT INTO tb1(nom,prenom)VALUES(?,?)"
    Mais vu votre code, je ne pense pas que cela passeras , il vous manque un prepare() et un execute([]) dans votre code.

  8. #8
    Inactif  
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut enregistrer les données d'un formulaire dans une base de données mysql
    bonsoir, merci pour votre aide
    j ai corrigé , mais a l'excusion ne s'affiche rien , page blanche
    pouvez vous m'expliquer sert a quoi prepar() dont vous avez cité
    exécute existe déjà après insert to
    vous avez des suggestions svp

    voici mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
        	<?php
    $pdo = null;
    $dsn='mysql: host=localhost; dbname=ab1'; /* nom de ma base est "ab1"*/
    $dbUser='root'; /*user de ma base myphpadmin*/
    $pw='';/*passewode*/
    try{
            $pdo = new PDO ($dsn, $dbUser, $pw);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
    catch (PDOException $e) {
                                  echo 'Connection failed:' . $e->getMessage();
                            }
    $pdo ->query("SET NAMES UTF8");//solution encodage UFT8
    return $pdo;
    if (isset($_POST['submit']))
    {
            if(isset($_POST['nom'], $_POST['prenom'])) 
            {
                    if($_POST['nom'] !=""&& $_POST['prenom'] !="")
                     {
                        //ENRG
                      $insertion="INSERT INTO tb1(nom,prenom)VALUES(?,?)";  
                        $execute = $pdo->query($insertion);//
                         if($execute==true)
                         {
                            $msgSuccess="information enregistrées avec succes";
                         }  else  
                            {
                                     $msgError="l'enregistrement n'a pas pu etre effectuer";
                             }
                    }
            }
    }
    ?>
     <div> 
    <?php 
    if(isset($msgError)){ echo $msgError; }elseif  (isset($msgSuccess)){echo $msgSuccess;}
    ?>
     </div>
     
     
     
     
            <form method="POST" action="ab9.php"> 
        <p>
    		<input type="text" name="nom" placeholder="nom"> <br> <br>
        <input type="text" name="prenom" placeholder="prenom"> <br> <br>
        <button type="submit" name="submit">valider</button>
    </p>
          </form>
    agréable soirée

  9. #9
    Inactif  
    Inscrit en
    Janvier 2008
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 254
    Par défaut enregistrer les données d'un formulaire dans une base de données mysql
    bonsoir à tous
    problème résolu, suite erreurs de syntaxe, mon code c'était juste un cas de figures par rapport mon travail demandé.
    il sera à votre disposition pour vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
     
     
    $pdo = null;
    $dsn='mysql: host=localhost; dbname=ab1'; /*-nom base de donnees=ab1*/
    $dbUser='root'; /*-username bdd=root*/
    $pw=''; /*-password bdd =vide (j'ai pas mots de passe)*/
     
    try{
            $pdo = new PDO ($dsn, $dbUser, $pw);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
    catch (PDOException $e) {
                                  echo 'Connection failed:' . $e->getMessage();
                            }
     
    if (isset($_POST['submit'])){
     
     
        if(isset($_POST['nom'], $_POST['prenom']))
            {
     
    	$data = array (
        'id' => NULL,
        'nom' => $_POST['nom'],
        'prenom' => $_POST['prenom'],
    	);
    			     if($_POST['nom'] !="" && $_POST['prenom'] !="")
                     {
    					$sql= "INSERT INTO tb1 (id,nom,prenom) VALUES (:id,:nom,:prenom)"; /*table_key = tb1*/
    					$stmt= $pdo->prepare($sql);
    					$stmt->execute($data);
     
    				 }
    		}
    }
     
    ?>
     
     
    <!DOCTYPE html>
    <html>
    <head>
     
    <meta charset="utf-8">
    <title>FORMULAIRE</title>
     
    </head>
    <body>
     
    <form method="POST" action="">    		   	
    	<input type="text" name="nom" placeholder="nom" required> <br> <br>
        <input type="text" name="prenom" placeholder="prenom" required> <br> <br>  
        <button type="submit" name="submit">valider</button>
    </form>
     
     
    </body>
     
    </html>
    merci à vous tous pour vos proposition, suggestion aide et assistance, bonne continuation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/02/2016, 17h14
  2. [Débutant] Enregistrement des infos d'un formulaire dans une base de donnees
    Par cobos dans le forum VB.NET
    Réponses: 5
    Dernier message: 28/04/2015, 21h36
  3. Réponses: 6
    Dernier message: 07/08/2014, 16h53
  4. Réponses: 1
    Dernier message: 03/10/2009, 13h52
  5. Réponses: 5
    Dernier message: 03/04/2009, 20h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo