Enregistrer données dans une base de données Mysql [Fermé]

Signaler
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
-
 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


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

Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
9
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
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
Messages postés
46
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
5 janvier 2016
9
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 :/
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