Aucun enregistrement ne se crée (mysql) ?

Fermé
campusliber - 4 juin 2008 à 11:41
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 - 22 juin 2008 à 12:40
Bonjour tout l'monde !

Deux questions en une :

- Qu'est-ce que c'est qu'une "base" sous mysql ?
J'ai beaucoup de mal à comprendre : le seul système que je connaisse est Filemaker. Mais je ne retrouve sous mysql aucune possibilité de programmer des scripts, des calculs, des fonctions... Et je ne sais même pas comment on affiche la base en mode "utilisation" !

- J'ai : un formulaire, une page de script php, une base. Le script doit permettre de transmettre à celle-ci les valeurs de celui-là.
Grâce à l'aide de membres de ce site, je n'ai plus de message d'erreur, donc a priori le script fonctionne... mais ne crée aucun enregistrement dans la base !
A voir également:

15 réponses

tu veux bien nous joindre ton code qui insert des enregistrement dans ta base mysql ?
0
Voilà, voilà...


<?php

error_reporting(E_ALL);

// ON crée les variables de connection
$hote = "localhost";
$user = "campusliber";
$pass = "426412s";
$base = "agents";
$table = "inscription";

$titreformulaire =htmlentities($_POST[" titreformulaire"]);
$civilites = htmlentities($_POST["civilites"]);
$prenom = htmlentities($_POST["prenom"]);
$nom = htmlentities($_POST["nom"]);
$adresse = htmlentities($_POST["adresse"]);
$suiteadresse = htmlentities($_POST["suiteadresse"]);
$codepostal = htmlentities($_POST["codepostal"]);
$ville = htmlentities($_POST["ville"]);
$telfixe = htmlentities($_POST["telfixe"]);
$gsm = htmlentities($_POST["gsm"]);
$adressemail = htmlentities($_POST["adressemail"]);
$secusociale = htmlentities($_POST["secusociale"]);
$datenaissance= htmlentities($_POST[" datenaissance"]);
$villenaissance = htmlentities($_POST["villenaissance"]);
$departnaissance = htmlentities($_POST["departnaissance"]);

// On se connecte à la base de données
mysql_connect("$hote","$user","$pass") or die ( "Erreur de connexion : ".mysql_error() );
mysql_select_db("$base") or die ( "Erreur de connexion à la base ".$base." ".mysql_error() );

// On insère les données dans la table
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix–––e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";

mysql_query($sql) or die ("Erreur dans la requête ".mysql_error() );

echo 'les informations ont été enrengistrées:<br />' .$titreformulaire.' '.$civilites.' '.$prenom.' '.$nom.' '.$adresse'.'Etc...' ;

?>

Tiens, un doute me taraude, brutalement : ce doce, il s'insère où : head, body ???
0
en body
0
Bon, merci, il est bien à sa place...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je crois que dans le insert tu dois le metre de facon suivant

$sql = "INSERT INTO $table ('champ1' , 'champ2' ........ )

VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­–––e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";


donc re donner les noms de tes champs
0
Je ne comprends pas : c'est déjà écrit comme ça !

code actuel :
$sql = "INSERT INTO $table VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfix­–––e,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";

Tu me proposes d'écrire quoi ?
0
il faut que tu re presise les noms de tes champs


exemple le plus simple possible :


$prenom =$_POST["prenom");
$nom =$_POST["nom");
$age =$_POST["age");


$sql = "INSERT INTO $table ('nom' , 'prenom','age' )

VALUES ('$nom','$prenom','$age')";
0
J'ai inséré ça :

$sql = "INSERT INTO $table('titreformulaire','civilités','prénom','nom','adresse','suiteadresse','codepostal','ville','telfixe','gsm','adressemail','secusociale','datenaissance') VALUES (
$titreformulaire,$civilites,$prenom,$nom,$adresse,$suiteadresse,$codepostal,$ville,$telfixe,$gsm,$adressemail,$secusociale,$datenaissance
,$villenaissance,$departnaissance)";


Et ça ne fonctionne toujours pas : aucun enregistrement créé !
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
4 juin 2008 à 14:49
regarde bien mon exemple il faut des ' entre tes variables
'$titreformulaire'
0
Bon, j'ai corrigé :

$sql = "INSERT INTO $table('titreformulaire','civilités','prénom','nom','adresse','suiteadresse','codepostal','ville','telfixe','gsm','adressemail','secusociale','datenaissance') VALUES (
'$titreformulaire','$civilites','$prenom','$nom','$adresse','$suiteadresse','$codepostal','$ville','$telfixe','$gsm','$adressemail','$secusociale','$datenaissance'
,'$villenaissance','$departnaissance')";

Toujours pas d'enregistrement créé !!!
Cest peut-être un problème au niveau de la table, mais je ne sais pas comment afficher le code de celle-ci...
0
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 69
4 juin 2008 à 16:24
C'est :

$sql = "INSERT INTO $table (titreformulaire,civilités,prénom,nom,adresse,suiteadresse,codepostal,ville,telfixe,gsm,adressemail,secusociale,datenaissance) VALUES (
'$titreformulaire','$civilites','$prenom','$nom','$adresse','$suiteadresse','$codepostal',­'$ville','$telfixe','$gsm','$adressemail','$secusociale','$datenaissance'
,'$villenaissance','$departnaissance')"; 

Sans les apostrophes quand tu indiques les champs de ta table.
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
4 juin 2008 à 15:34
si tu utilise phpmydmin il y a un bouton export qui te permet d'avoir ta BD sous forme de code
0
Voilà ce que donne la structure de la table :

-- phpMyAdmin SQL Dump
-- version 2.6.2
-- https://www.phpmyadmin.net/
--
-- Serveur: localhost
-- Généré le : Mercredi 04 Juin 2008 à 15:41
-- Version du serveur: 4.0.20
-- Version de PHP: 5.0.4
--
-- Base de données: `agents`
--

-- --------------------------------------------------------

--
-- Structure de la table `inscription`
--

CREATE TABLE `inscription` (
`titreformulaire` varchar(45) NOT NULL default '',
`civilites` varchar(12) NOT NULL default '',
`prenom` varchar(30) NOT NULL default '',
`nom` varchar(30) NOT NULL default '',
`adresse` varchar(60) NOT NULL default '',
`suiteadresse` varchar(60) NOT NULL default '',
`codepostal` varchar(5) NOT NULL default '',
`ville` varchar(45) NOT NULL default '',
`telfixe` varchar(10) NOT NULL default '',
`gsm` varchar(10) NOT NULL default '',
`adressemail` varchar(60) NOT NULL default '',
`secusociale` varchar(14) NOT NULL default '',
`datenaissance` varchar(10) NOT NULL default '',
`villenaissance` varchar(45) NOT NULL default '',
`departnaissance` char(3) NOT NULL default '',
UNIQUE KEY `titreformulaire` (`titreformulaire`)
) TYPE=MyISAM;

--
-- Contenu de la table `inscription`
--
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
4 juin 2008 à 15:58
moi je pense plutôt que c'est ton formulaire qui ne marche pas bien
ou le transfert des donné du formulaire au result.php
0
Si j'utilise une fonction d'envoi par mail des infos du formulaire, ça fonctionne très bien.
Donc je pense que le formulaire n'est pas en cause...
0
j'ai, à nouveau, corrigé :

$sql = "INSERT INTO $table (titreformulaire,civilités,prénom,nom,adresse,suiteadresse,codepostal,ville,telfixe,gsm,ad­ressemail,secusociale,datenaissance) VALUES (
'$titreformulaire','$civilites','$prenom','$nom','$adresse','$suiteadresse','$codepostal',­­'$ville','$telfixe','$gsm','$adressemail','$secusociale','$datenaissance'
,'$villenaissance','$departnaissance')";

sans progresser vers un résultat...
0
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 69
22 juin 2008 à 12:40
Une des possibilités pour laquelle ton enregistrement ne se crée par c'est peut être qu'une des valeurs que tu cherches à inclure dans ta table n'est pas bien définies. Fait peut-être un "echo" de tes valeurs avant pour vérifier qu'elles sont bonnes.
0