Enregistrer données dans une base de données Mysql
juliendefully
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
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
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 ) ; ?>
A voir également:
- Enregistrer données dans une base de données Mysql
- Fuite données maif - Guide
- Audacity enregistrer son pc - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Base de registre - Guide
2 réponses
Bonsoir,
ensuite
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
$_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
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
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
au niveau de ta requete SQL fait un
ainsi tu pourras vérifier la syntaxe de ta requete
moi je verrais plutot un truc du genre
la requete SQL doit ne doit pas etre interpretée, mais en format texte
cdt
$_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
J'ai mis le code suivant :
Et j'ai obtenu la réponse suivante :
Tout me semble correct pourtant rien n'est enregistré dans la base de données :/
<?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 :
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 :
cdt
INSERT INTO companies (id) VALUES ('1')