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 :

Enregistrement dans une base de donnée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut Enregistrement dans une base de donnée
    Bonjour à tous, j'ai effectué une requête préparée pour faire des enregistrements dans ma base, mais quand je fais les saisies au niveau de mon formulaire les données ne s'enregistrent pas dans la base. je ne reçois pas aussi de message d'erreur.
    code du formulaire:
    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
    <form name="frm_client" method ="post" action="addclient.php" enctype="multipart/form-data">
                <table id="frm_client">
                    <tr>
                        <td> Numéro Client: </td>
                        <td> <input type ="text" class="client" name="numclient" > </td>
                    </tr>
                    <tr>
                        <td> Nom: </td>
                        <td> <input type ="text" class="client" name="nomclient" > </td>
                    </tr>
                    <tr>
                        <td>Prénom: </td>
                        <td> <input type ="text" class="client" name="prenomclient"> </td>
                    </tr>
                    <tr>
                        <td>Numéro permis: </td>
                        <td> <input type ="text" class="client" name="numpermis"> </td>
                    </tr>
                    <td>Date de naissance: </td>
                    <td> <input type="date" class="client" name="datenais"> </td>
                    </tr>
                    <tr>
                        <td>E-mail </td>
                        <td><input type ="email" class="client" name="email"> </td>
                    </tr>
                    <tr>
                        <td> Tél: </td>
                        <td><input type="tel" name ="tel" class="client"> </td>
                    </tr>
                    <tr>
                        <td> Lieu habitation: </td>
                        <td><input type="text" name ="habitation" class="client" > </td>
                    </tr>
                    <tr>
                        <td> </td>
                        <td> <input type="submit" value=" Enregistrer" class="client" > </td>
                    <tr>
                </table>
            </form>
    la page php:
    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
    <?php
    //variables d'enregistrement client
    $numclient = $_POST['numclient'];
    $nomclient = $_POST['nomclient'];
    $prenomclient = $_POST['prenomclient'];
    $numpermis = $_POST['numpermis'];
    $datenais = $_POST['datenais'];
    $email = $_POST['email'];
    $tel = $_POST['tel'];
    $lieuhabitaion = $_POST['habitation'];
    // test sur la validé des champs
    if(!empty( $numclient) and !empty($nomclient) and !empty($prenomclient) and !empty($numpermis) and !empty($datenais)and !empty($email) and !empty($tel) and !empty($lieuhabitaion)) {
    require_once 'connexion.php';
    /** @var TYPE_NAME $conn */
    $req=$conn->prepare('INSERT INTO client(numclient, nomclient, prenomclient, numpermis, datenais, email, tel, lieuhabitaion) VALUES (:numclient, :nomclient, :prenomclient, :numpermis, :datenais, :email, :tel, :lieuhabitaion)');
    $req->execute(array('numclient'=>$numclient, 'nomclient'=>$nomclient, 'prenomclient'=>$prenomclient, 'numpermis'=>$numpermis, 'datenais'=>$datenais, 'email'=>$email, 'tel'=>$tel, 'lieuhabitaion'=>$lieuhabitaion));
    header('location: frm_Client.php');
    }
    else{
    header("Location: http://localhost/Sites/frm_Client.php?erreur=1&numclient=$numclient");
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que les exceptions PDO sont activées au niveau de ta connexion ?
    Est-ce c'est bien "habitaion" au lieu de "habitation" ?

    La première partie de ton code n'a pas d'utilité, utilise directement $_POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // test sur la validé des champs
    if(!empty( $_POST['numclient']) && !empty($_POST['nomclient']) && !empty($_POST['prenomclient']) && !empty($_POST['numpermis']) && !empty($_POST['datenaisance'])&& !empty($_POST['email']) && !empty($_POST['tel']) && !empty($lieuhabitaion)) {
    require_once 'connexion.php';
    /** @var TYPE_NAME $conn */
    $req=$conn->prepare('INSERT INTO client(numclient, nomclient, prenomclient, numpermis, datenais, email, tel, lieuhabitaion) VALUES (:numclient, :nomclient, :prenomclient, :numpermis, :datenais, :email, :tel, :lieuhabitaion)');
    $req->execute(array('numclient'=>$_POST['numclient'], 'nomclient'=>$_POST['nomclient'], 'prenomclient'=>$_POST['prenomclient'], 'numpermis'=>$_POST['numpermis'], 'datenais'=>$_POST['datenaisance'], 'email'=>$_POST['email'], 'tel'=>$_POST['tel'], 'lieuhabitaion'=>$lieuhabitaion));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Est-ce que les exceptions PDO sont activées au niveau de ta connexion ?
    Est-ce c'est bien "habitaion" au lieu de "habitation" ?
    C'est "habitation".
    Voici comment j'ai établis la connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $server='localhost';
    $db='location';
    $utilisateur='root';
    $MotPass='';
    try {
    	$conn = new PDO("mysql:host=$server; dbname=$db",$utilisateur,$MotPass);
    }catch (PDOException $event){
    	die('erreur:'.$event->getMessage());
    }
    ?>
    J'ai essayé avec $_POST. C'est toujours le même résultat.

  4. #4
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Par défaut PDO est silencieux donc n'affichera pas les erreurs SQL donc ajoute après ta connexion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO:ERRMODE_EXCEPTION);
    Ensuite pour tester s'il y a une ligne insérée tu peux tester le rowCount comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($req->rowCount()) {
      //Insertion effectuée avec succès
    }

  5. #5
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut
    Toujour le même résultat.
    Pourtant je reçois les valeurs envoyées sur mage php. est ce qu'il y aune erreur dans ma requête sql?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    echo "<pre>"; print_r($_POST); echo "</pre>";// pour voir si je reçois les valeurs
     
    // test sur la validé des champs
    // test sur la validé des champs
    if(!empty( $_POST['numclient']) && !empty($_POST['nomclient']) && !empty($_POST['prenomclient']) && !empty($_POST['numpermis']) && !empty($_POST['datenaisance'])&& !empty($_POST['email']) && !empty($_POST['tel']) && !empty($lieuhabitaion)) {
        require_once 'connexion.php';
        /** @var TYPE_NAME $conn */
        $req=$conn->prepare('INSERT INTO client(numclient, nomclient, prenomclient, numpermis, datenais, email, tel, lieuhabitaion) VALUES (:numclient, :nomclient, :prenomclient, :numpermis, :datenais, :email, :tel, :lieuhabitaion)');
     
        if ($req->rowCount()) {
            echo "Insertion effectuée avec succès";
        }

  6. #6
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Dans le code que tu montres, tu as viré la partie $req->execute , oubli ?
    Sinon est-ce que tu rentres vraiment dans ton premier if ?
    Accolade fermante du premier if aussi manquante? Oubli ? Si dans le dernier cas ce n'est pas un oubli, tu dois sûrement développer avec les erreurs à off

  7. #7
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Dans le code que tu montres, tu as viré la partie $req->execute , oubli ?
    Sinon est-ce que tu rentres vraiment dans ton premier if ?
    Accolade fermante du premier if aussi manquante? Oubli ? Si dans le dernier cas ce n'est pas un oubli, tu dois sûrement développer avec les erreurs à off
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req->execute(array('numclient'=>$_POST['numclient'], 'nomclient'=>$_POST['nomclient'], 'prenomclient'=>$_POST['prenomclient'], 'numpermis'=>$_POST['numpermis'], 'datenais'=>$_POST['datenaisance'], 'email'=>$_POST['email'], 'tel'=>$_POST['tel'], 'lieuhabitaion'=>$_POST['habitation']));
    les if sont belles et bien fermés dans mon code.

  8. #8
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Est-tu sûr de rentrer dans ta première condition ?
    Parce que la variable $lieuhabitaion (regarde le dernier empty de ton if) semble ne pas exister dans ton code, si c'est le cas ta condition ne sera jamais vérifiée même si tu remplis tous les champs..

  9. #9
    Membre confirmé Avatar de cobos
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 111
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Est-tu sûr de rentrer dans ta première condition ?
    Parce que la variable $lieuhabitaion (regarde le dernier empty de ton if) semble ne pas exister dans ton code, si c'est le cas ta condition ne sera jamais vérifiée même si tu remplis tous les champs..
    effectivement c'étais le problème, j'avais défini des variables auparavant pour récupérer les valeurs envoyées par le formulaire. Merci pour votre aide

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

Discussions similaires

  1. MàJ/ajout d'un enregistrement dans une base de données mySQL
    Par BMT_Benoît dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/08/2007, 08h02
  2. Réponses: 10
    Dernier message: 17/03/2007, 14h05
  3. enregistrer dans une base de données
    Par liverbird dans le forum C++Builder
    Réponses: 33
    Dernier message: 12/07/2006, 19h50
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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