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 :

Insertion dans la base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut Insertion dans la base de données
    Bonjour à vous
    voila j'ai créé un formulaire et je voudrais insérer les réponses dans ma basse de données.
    Mais je ne l'ai jamais fait
    C'est la première fois que j'essaie
    Je viens de passer toute ma nuit sur ça mais rien ne rentre dans la bdd


    Voila ma page valide.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
    23
    24
    25
    26
    27
    28
    29
    <?php
     
    $pseudo=$_POST['pseudo'];
    $email=$_POST['email'];
    $id_reg=$_POST['id_reg'];
    $id_dept=$_POST['id_dept'];
    $ville=$_POST['ville'];
    $sexe=$_POST['sexe'];
    $m1=$_POST['m1'];
    $poids=$_POST['poids'];
    $ageday=$_POST['ageday'];
    $agemonth=$_POST['agemonth'];
    $ageyear=$_POST['ageyear'];
    $descri=$_POST['descri'];
    $alert_message=$_POST['alert_message'];
     
     
        mysql_connect("80.**.**.**", "****", "***");
    mysql_select_db("membre");
     
    $requete = "INSERT INTO profile( `pseudo` , `email` , `id__reg` , `id_dept` , `ville` , `sexe` , `m1` , `poids` , `ageday` , `agemonth` , `ageyear` , `descri` , `alerte_message` )
      VALUES('$pseudo', '$email', '$id_reg', '$id_dept', '$ville', '$sexe', '$m1', '$poids', '$ageday', '$agemonth', '$descri', '$alerte_message')";
     
    $result = mysql_query ($requete);
     
     
     mysql_close();
     
    ?>

    Ne vous moquez pas Il y a surement des erreurs mais c'est la première fois !

    Donc pouvez-vous me dire ce que j'ai oublié ou mes fautes
    et je voudrais rajouter un message de confirmation comme quoi ça a été enregistré
    "votre profil a bien été enregistré"

    je vous remercie infiniment
    cordialement nico

  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
    Bonjour,

    Affiche la requete et les erreurs mysql en cas d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result = mysql_query ($requete) or die ($requete . '<br>' . mysql_error());
    Sinon, on ne met pas dans une requete, des données saisie par un utilisateur sans les avoirs validées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pseudo=mysql_real_escape_string($_POST['pseudo']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut
    merci pour votre reponse
    mais, je doit mettre ça comment svp ?
    désolé je debute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pseudo=mysql_real_escape_string($_POST['pseudo']);

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pseudo=$_POST['pseudo'];
    Tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pseudo=mysql_real_escape_string($_POST['pseudo']);
    et tu répètes pour toutes les lignes

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut
    c'est bon j'ai modifié
    mais bizarre quand je valide ça m'affiche la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO profile( `pseudo` , `email` , `id__reg` , `id_dept` , `ville` , `sexe` , `m1` , `poids` , `ageday` , `agemonth` , `ageyear` , `descri` , `alerte_message` ) VALUES('', '', '10', '41', 'EZ', '1', '1', '65', '07', '08', 'salutDVDSVS', '')
    Column count doesn't match value count at row 1
    mon code ressemble à ça maintenant
    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
    <?php
     
     mysql_connect("80.**.***.**", "***", "***");
    mysql_select_db("f***");
     
    $pseudo=mysql_real_escape_string ($_POST['pseudo']);
    $email=mysql_real_escape_string($_POST['email']);
    $id_reg=mysql_real_escape_string ($_POST['id_reg']);
    $id_dept=mysql_real_escape_string($_POST['id_dept']);
    $ville=mysql_real_escape_string ($_POST['ville']);
    $sexe=mysql_real_escape_string($_POST['sexe']);
    $m1=mysql_real_escape_string($_POST['m1']);
    $poids=mysql_real_escape_string($_POST['poids']);
    $ageday=mysql_real_escape_string($_POST['ageday']);
    $agemonth=mysql_real_escape_string($_POST['agemonth']);
    $ageyear=mysql_real_escape_string($_POST['ageyear']);
    $descri=mysql_real_escape_string($_POST['descri']);
    $alert_message=mysql_real_escape_string ($_POST['alerte_message']);
     
     
     
    $requete ="INSERT INTO profile( `pseudo` , `email` , `id__reg` , `id_dept` , `ville` , `sexe` , `m1` , `poids` , `ageday` , `agemonth` , `ageyear` , `descri` , `alerte_message` )
      VALUES('$pseudo', '$email', '$id_reg', '$id_dept', '$ville', '$sexe', '$m1', '$poids', '$ageday', '$agemonth', '$descri', '$alerte_message')";
     
    $result = mysql_query ($requete) or die ($requete . '<br>' . mysql_error()); 
     
     mysql_close();
     
    ?>

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    C'est normal que ça t'affiche ta requete puisque tu as une erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die ($requete . '<br>' . mysql_error());
    signifie (en gros) : si ça ne marche pas, stopper et afficher la requete et l'erreur MySQL.

    Et l'erreur signalée est qu'il manque une valeur par rapport aux champs définis.
    Tu as 13 champs et 12 valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ( `pseudo` , `email` , `id__reg` , `id_dept` , `ville` , `sexe` , `m1` , `poids` , `ageday` , `agemonth` , `ageyear` , `descri` , `alerte_message` )
    ('$pseudo', '$email', '$id_reg', '$id_dept', '$ville', '$sexe', '$m1', '$poids', '$ageday', '$agemonth', '$descri', '$alerte_message')";
    Il manque la valeur pour ageyear

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    "Column count doesn't match value count at row 1"

    Vérifie dans ta requête que tu as le même nombre de champs que de valeurs !
    Il manque :
    , '$ageyear'

    (Guardian, tu as été plus rapide ! )

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut re
    bon je vien dessayer sa
    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
     
     
    <?php
    //On vérifie si le formulaire a été envoyé.
    if(isset($_POST['pseudo']) && !empty($_POST['pseudo']))
    {
    $pseudo=mysql_real_escape_string ($_POST['pseudo']);
    $email=mysql_real_escape_string($_POST['email']);
    $id_reg=mysql_real_escape_string ($_POST['id_reg']);
    $id_dept=mysql_real_escape_string($_POST['id_dept']);
    $ville=mysql_real_escape_string ($_POST['ville']);
    $sexe=mysql_real_escape_string($_POST['sexe']);
    $m1=mysql_real_escape_string($_POST['m1']);
    $poids=mysql_real_escape_string($_POST['poids']);
    $ageday=mysql_real_escape_string($_POST['ageday']);
    $agemonth=mysql_real_escape_string($_POST['agemonth']);
    $ageyear=mysql_real_escape_string($_POST['ageyear']);
    $descri=mysql_real_escape_string($_POST['descri']);
    $alert_message=mysql_real_escape_string ($_POST['alerte_message']);
     
     
     mysql_connect("80.**.**.**", "***", "****");
       mysql_select_db("f****") or die(mysql_error());
     
      $requete = "INSERT INTO profile (pseudo, email, id_reg, id_dept, ville, sexe, m1, poids, ageday, agemonth, ageyear, descri, alerte_message)
    VALUES('".$pseudo."', '".$email."', '".$id_reg."', '".$id_dept."', '".$ville."', '".$sexe."', '".$m1."', '".$poids."', '".$ageday."', '".$agemonth."', '".$ageyear."', '".$descri."', '".$alerte_message."')";
     
     
        if($result == TRUE)
        {
          echo '<p>L\'enregistrement a été effectué avec succès.</p>';
          exit();
        }
        else
        {
          echo '<p>Une erreur est survenue pendant la requête.</p>';
          exit();
        }
    mysql_close();
     
    }
    else
    {
      // On réaffiche le formulaire s'il n'a pas été envoyé.
      echo '<p>Formulaire pas envoyé, recommencez!</p>';
      exit();
    }
    ?>
    et jai sa
    Formulaire pas envoyé, recommencez!

  9. #9
    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
    Vérifie que tu as bien un champ name="pseudo" dans ton formulaire et que method="post" dans ton <form>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Par défaut
    j'ai reussi
    voici mon code qui marche
    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
     
    <?php
    if(isset($_POST['Submit']) && $_POST['Submit'] == 'Valider mon profile')
    {
      mysql_connect("*****", "****", "0***") or die(mysql_error());
      mysql_select_db("f*****9") or die(mysql_error());
     
      $pseudo = mysql_real_escape_string($_POST['pseudo']);
      $email = mysql_real_escape_string($_POST['email']);
      $id_reg = mysql_real_escape_string($_POST['id_reg']);
      $ville = mysql_real_escape_string($_POST['ville']);
      $sexe = mysql_real_escape_string($_POST['sexe']);
      $orient = mysql_real_escape_string($_POST['orient']);
      $poids = mysql_real_escape_string($_POST['poids']);
      $ageday = mysql_real_escape_string($_POST['ageday']);
      $agemonth = mysql_real_escape_string($_POST['agemonth']);
      $ageyear = mysql_real_escape_string($_POST['ageyear']);
      $descri = mysql_real_escape_string($_POST['descri']);
      $alert_message = mysql_real_escape_string($_POST['alert_message']);
     
      $requete = "INSERT INTO profile (pseudo, email, id_reg, ville, sexe, orient, poids, ageday, agemonth, ageyear, descri, alerte_message)
    VALUES('".$pseudo."', '".$email."', '".$id_reg."', '".$ville."', '".$sexe."', '".$orient."', '".$poids."', '".$ageday."', '".$agemonth."', '".$ageyear."', '".$descri."', '".$alerte_message."')";
     
      $result = mysql_query($requete) or die(mysql_error());
     
        if($result == TRUE)
        {
          echo '<p>L\'enregistrement a été effectué avec succès.</p>';
          exit();
        }
        else
        {
          echo '<p>Une erreur est survenue pendant la requête.</p>';
          exit();
        }
    mysql_close();
     
    }
    else
    {
      header('Location: edite_profile.php');
      exit();
    }
    ?>

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

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  2. [paradox7] Problème d'insertion dans la base de données
    Par mouna201 dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/02/2006, 09h47
  3. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  4. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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