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

Fermé
juliendefully Messages postés 46 Date d'inscription mardi 9 avril 2013 Statut Membre Dernière intervention 5 janvier 2016 - 16 août 2014 à 22:23
 Utilisateur anonyme - 16 août 2014 à 23:02
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

Utilisateur anonyme
16 août 2014 à 22:30
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
juliendefully Messages postés 46 Date d'inscription mardi 9 avril 2013 Statut Membre Dernière intervention 5 janvier 2016 13
16 août 2014 à 22:36
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
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
juliendefully Messages postés 46 Date d'inscription mardi 9 avril 2013 Statut Membre Dernière intervention 5 janvier 2016 13
Modifié par juliendefully le 16/08/2014 à 22:53
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
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