Enregistrer données dans une base de données Mysql

juliendefully Messages postés 50 Statut Membre -  
 Utilisateur anonyme -
Bonjour,
J'aimerais enregistrer des données envoyées par un formulaire dans une base de données Mysql. J'ai fait le code ci-dessous mais il ne fonctionne pas avez-vous une idée de pourquoi il ne fonctionne pas ?

Merci de votre aide.
Julien

<?php
// On démarre la session
session_start();

// Création de l'id client
$reference = time() . rand(111111, 999999);
$id = rand(1111, 9999) . time();

// Récupérer données
$_SESSION['clientid'] = $id;
$_SESSION['clientreference'] = $reference;
$_SESSION['entreprise'] = $_POST["entreprise"];
$_SESSION['nom'] = $_POST["nom"];
$_SESSION['prenom'] = $_POST["prenom"];
$_SESSION['adresse'] = $_POST["adresse"];
$_SESSION['ville'] = $_POST["ville"];
$_SESSION['npa'] = $_POST["npa"];
$_SESSION['pays'] = $_POST["pays"];
$_SESSION['email'] = $_POST["email"];
$_SESSION['telephone'] = $_POST["telephone"];
$_SESSION['mobile'] = $_POST["mobile"];

// Définir variables pour MySql
$entreprise = $_POST["entreprise"];
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$adresse = $_POST["adresse"];
$ville = $_POST["ville"];
$npa = $_POST["npa"];
$pays = $_POST["pays"];
$email = $_POST["email"];
$telephone = $_POST["telephone"];
$mobile = $_POST["mobile"];

// Informations de connection
mysql_connect ("localhost", "user", "motdepasse");
mysql_select_db ("nombsaededonnées"); 

// Insertion des données
$insert_query = "INSERT INTO companies (id, reference, name, client_id, phone, mobile, address, zipcode, city, inactive, website, country, vat, note) VALUES ('".$id."', '".$reference."', '".$entreprise."', '".$id."', '".$telephone."', '".$mobile."', '".$adresse."', '".$npa."', '".$ville."', '0', 'www.site.ch', '".$pays."', 'NULL', '', now())"; 
$insertion_result = mysql_query ($insert_query ) ; 
?>

2 réponses

  1. Utilisateur anonyme
     
    Bonsoir,

    $_SESSION['entreprise'] = $_POST["entreprise"];


    ensuite

    $entreprise = $_POST["entreprise"];

    Je sais que ça pose un pb. Une variable de session ayant le même nom qu'une variable "normale" ça ne colle pas. Tu définis deux fois les mêmes variables ... pourquoi utiliser des variables de session ?

    cdt

    0
  2. juliendefully Messages postés 50 Statut Membre 13
     
    Bonsoir,
    Merci pour ta réponse, j'ai essayé de modifier la seconde variable mais les données ne s'insèrent pas dans la base de donnée...

    J'ai défini les variables de session simplement pour afficher un récapitulatif des données ajoutées dans la base de données.

    Cordialement,
    Julien
    0
    1. Utilisateur anonyme
       
      essaie de changer le nom de tes variables de session en les prefixant par exemple par sess.nom_de_la_variable

      $_SESSION['sess_clientid'] = $id;

      au niveau de ta requete SQL fait un

      echo $insert_query = "INSERT INTO companies (id, reference, name, c .............
      die();

      ainsi tu pourras vérifier la syntaxe de ta requete

      moi je verrais plutot un truc du genre

      ......active, website, country, vat, note) VALUES ('". echo $id."', '".

      la requete SQL doit ne doit pas etre interpretée, mais en format texte

      cdt
      0
    2. juliendefully Messages postés 50 Statut Membre 13
       
      J'ai mis le code suivant :

      <?php
      // On démarre la session
      session_start();
      
      // Création de l'id client
      $reference = time() . rand(111111, 999999);
      $id = rand(1111, 9999) . time();
      
      // Récupérer données
      $_SESSION['clientid'] = $id;
      $_SESSION['clientreference'] = $reference;
      $_SESSION['entreprise'] = $_POST["entreprise"];
      $_SESSION['nom'] = $_POST["nom"];
      $_SESSION['prenom'] = $_POST["prenom"];
      $_SESSION['adresse'] = $_POST["adresse"];
      $_SESSION['ville'] = $_POST["ville"];
      $_SESSION['npa'] = $_POST["npa"];
      $_SESSION['pays'] = $_POST["pays"];
      $_SESSION['email'] = $_POST["email"];
      $_SESSION['telephone'] = $_POST["telephone"];
      $_SESSION['mobile'] = $_POST["mobile"];
      
      // Définir variables pour MySql
      $bddentreprise = $_POST["entreprise"];
      $bddnom = $_POST["nom"];
      $bddprenom = $_POST["prenom"];
      $bddadresse = $_POST["adresse"];
      $bddville = $_POST["ville"];
      $bddnpa = $_POST["npa"];
      $bddpays = $_POST["pays"];
      $bddemail = $_POST["email"];
      $bddtelephone = $_POST["telephone"];
      $bddmobile = $_POST["mobile"];
      
      // Informations de connection
      mysql_connect ("localhost", "kuser", "fmotdepasse");
      mysql_select_db ("fullymailch_client"); 
      
      // Insertion des données
      $insert_query = "INSERT INTO companies (id, reference, name, client_id, phone, mobile, address, zipcode, city, inactive, website, country, vat, note) VALUES ('".$id."', '".$reference."', '".$bddnomentreprise."', '".$id."', '".$bddtelephone."', '".$bddmobile."', '".$bddadresse."', '".$bddnpa."', '".$bddville."', '0', 'www.site.ch', '".$bddpays."', 'NULL', 'Nonotes' )"; 
      $insertion_result = mysql_query ($insert_query ) ; 
      
      // Résultat
      echo $insert_query = "INSERT INTO companies (id, reference, name, client_id, phone, mobile, address, zipcode, city, inactive, website, country, vat, note) VALUES ('".$id."', '".$reference."', '".$bddnomentreprise."', '".$id."', '".$bddtelephone."', '".$bddmobile."', '".$bddadresse."', '".$bddnpa."', '".$bddville."', '0', 'www.site.ch', '".$bddpays."', 'NULL', 'Nonotes')";
      die();
      
      ?>
      


      Et j'ai obtenu la réponse suivante :

      INSERT INTO companies (id, reference, name, client_id, phone, mobile, address, zipcode, city, inactive, website, country, vat, note) VALUES ('67021408221924', '1408221924635955', 'Reto Consulting', '67021408221924', '079 988 89 92', '', 'Rue du stade', '1000', 'Lausanne', '0', 'www.site.ch', 'Suisse', 'NULL', 'Nonotes')


      Tout me semble correct pourtant rien n'est enregistré dans la base de données :/
      0
    3. Utilisateur anonyme
       
      Tout me semble correct egalement. Essaie un try et catch lors de la connexion à la db et lors de ton INSERT INTO

      http://php.net/manual/fr/language.exceptions.php

      et puis pourquoi n'utilises tu pas TIMESTAMP au lieu de tes RAND ?

      Ensuite essaie juste ( en modifiant ton code ) de n'inserer que qque champs, ce sera plus simple à debugguer. Dans ta table quels sont les types de données que tu as déclaré pour id et reference ? INT, LONG, DOUBLE, VARCHAR ?

      Pour etre sur essaie juste ça :

      INSERT INTO companies (id) VALUES ('1')

      cdt
      0