Intégration des données du formulaire dans la base

[Résolu]
Signaler
Messages postés
10
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 janvier 2010
-
Messages postés
3
Date d'inscription
vendredi 6 février 2015
Statut
Membre
Dernière intervention
6 février 2015
-
Bonjour,Je suis un graphiste qui débute dans le web design. J'ai quelques notions de php et je me forme tout seul grace aux différents forum.
Voilà,je travaille depuis deux jours sur un formulaire qui doit envoyer des données clients vers ma base (nom, adresse, téléphone...) J'utilise un code qui marchait très bien sur un autre site. Et là je ne comprends pas, lorsque je valide le formulaire, j'ai ma petite phrase qui me dit que les données ont bien été envoyées mais aucune trasse dans la base.
Voici le code de la base :
CREATE TABLE IF NOT EXISTS `annuaire` (
`id` int(3) unsigned NOT NULL auto_increment,
`nom` text collate latin1_general_cs NOT NULL,
`adresse` text collate latin1_general_cs NOT NULL,
`postal` text collate latin1_general_cs NOT NULL,
`ville` text collate latin1_general_cs NOT NULL,
`region` text collate latin1_general_cs NOT NULL,
`rubrique` text collate latin1_general_cs NOT NULL,
`presentation` text collate latin1_general_cs NOT NULL,
`keys` text collate latin1_general_cs NOT NULL,
`telephone` text collate latin1_general_cs NOT NULL,
`fax` text collate latin1_general_cs NOT NULL,
`email` text collate latin1_general_cs NOT NULL,
`lien` text collate latin1_general_cs NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `nom` (`nom`),
FULLTEXT KEY `adresse` (`adresse`),
FULLTEXT KEY `postal` (`postal`),
FULLTEXT KEY `ville` (`ville`),
FULLTEXT KEY `region` (`region`),
FULLTEXT KEY `rubrique` (`rubrique`),
FULLTEXT KEY `presentation` (`presentation`),
FULLTEXT KEY `keys` (`keys`),
FULLTEXT KEY `telephone` (`telephone`),
FULLTEXT KEY `fax` (`fax`),
FULLTEXT KEY `email` (`email`),
FULLTEXT KEY `lien` (`lien`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=2 ;



le code du formulaire :
<form name="form" id="form" method="post" action="verif-ajout-pro.php" onsubmit="return valider()">
Nom du pro.,
,

----

Adresse,
</textarea>,

----

Code Postal,
,

----

Ville,
,

----

Région,
<select name="region" id="region">
<option value="0">Choississez une région</option>
<option value="Alsace">Alsace</option>
<option value="Aquitaine">Aquitaine</option>
<option value="Auvergne">Auvergne</option>
<option value="Basse-Normandie">Basse Normandie</option>
<option value="Bourgogne">Bourgogne</option>
<option value="Bretagne">Bretagne</option>
<option value="Centre">Centre</option>
<option value="Chanpagne-Ardenne">Chanpagne-Ardenne</option>
<option value="Corse">Corse</option>
<option value="Franche-Comté">Franche-Comté</option>
<option value="Haute-Normandie">Haute Normandie</option>
<option value="Ile-de-France">Ile-de-France</option>
<option value="Languedoc-Roussillon">Languedoc-Roussillon</option>
<option value="Limousin">Limousin</option>
<option value="Lorraine">Lorraine</option>
<option value="Midi-Pyrénées">Midi-Pyrénées</option>
<option value="Nord-Pas-de-de-Calais">Nord-Pas-de-de-Calais</option>
<option value="Pays de la Loire">Pays de la Loire</option>
<option value="Picardie">Picardie</option>
<option value="Poitou-Charentes">Poitou-Charentes</option>
<option value="Provence">Provence</option>
<option value="Côte d'Azur">Côte d'Azur</option>
<option value="Alpes">Alpes</option>
<option value="Rhône-Alpes">Rhône-Alpes</option>
</select>,

----

Téléphone,
,

----

Fax,
,

----

e-mail,
,

----

Site internet,
,

----

Rubrique,
<select name="rubrique" id="rubrique">
<option value="0">Choissisez une rubrique</option>
<option value="1">Robes de Mariée</option>
<option value="2">Costumes homme</option>
<option value="3">Mode enfant</option>
<option value="4">Robes de cocktail</option>
<option value="5">Accessoires femme</option>
<option value="6">Accessoires homme</option>
<option value="7">Alliances, bijoux</option>
<option value="8">Coiffure</option>
<option value="9">Maquillage</option>
<option value="10">Parfums</option>
<option value="11">Manucure</option>
<option value="12">Salons de beauté</option>
<option value="13">Produits de beauté</option>
<option value="14">Salles et lieux</option>
<option value="15">Faire part</option>
<option value="16">Décoration et fleurs</option>
<option value="17">Traiteurs</option>
<option value="18">Gâteaux</option>
<option value="19">Vin et champagne</option>
<option value="20">Dragées</option>
<option value="21">Animation</option>
<option value="22">Photos et vidéo</option>
<option value="23">Location de véhicule</option>
<option value="24">Accessoires de fête</option>
<option value="25">Voyage de noces</option>
<option value="26">Wedding planners</option>
</select>,

----

Présentation,
<textarea name="presentation" cols="30" rows="6" id="presentation"></textarea>
5 lignes maximum,

----

Mots clés,
<textarea name="key" cols="30" rows="6" id="key"></textarea>,

----


</form>


et enfin le code php :
<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");
//construction de la requete d'ajout
$requete= 'INSERT INTO annuaire VALUES("'.$_POST['nom'].'","'.$_POST['adresse'].'","'.$_POST['cp'].'","'.$_POST['ville'].'","'.$_POST['region'].'","'.$_POST['tel'].'","'.$_POST['fax'].'","'.$_POST['email'].'","'.$_POST['lien'].'","'.$_POST['rubrique'].'","'.$_POST['presentation'].'","'.$_POST['keys'].'")';
//execution de la requete
$result=mysql_query($requete);
$id=mysql_insert_id();
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été
ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
?>
J'ai biensur enlever les codes de connection.
Voilà, si quelqu'un pouvait m'éclairer un peu. Merci d'avance

14 réponses

Messages postés
10
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 janvier 2010

je vous mets le quand même le code qui marche :
<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");
//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,mot_cle,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$mot_cle."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
$result=mysql_query($requete) or die(mysql_error());
$id=mysql_insert_id();
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
?>
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Essaie avoir ça:
$result=mysql_query($requete);  or die(mysql_error());

Au moins ça te dira si tu as une erreur MySQL. Cette solution est moche mais rapide et compréhensible pour un débutant..
S.
Messages postés
10
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 janvier 2010

merci pour ta réponse et ta rapidité.
j'ai donc intégré ta ligne de code, et lorsque je valide le formulaire j'ai cette annonce d'erreur :
Parse error: syntax error, unexpected T_LOGICAL_OR in /homez.232/mariezvo/www/admin/verif-ajout-pro.php on line 8

La ligne 8 est donc ta ligne.
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Ben voila tu as un souci avec ta requete.
Juste avant l'exécution, fais un Echo pour voir quelle tête elle peutavoir..
S.
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Fatigué Syndrael ?

@Tophe
L'erreur est une erreur de syntaxe PHP.
Il est fort probable que tu ai recopié la faute d'inattention de Syndrael :
$result=mysql_query($requete);
or die(mysql_error());
=>
$result = mysql_query($requete) or die(mysql_error());

Comme le dit Syndrael le fait d'afficher les erreurs de la requête va te mettre très rapidement sur la voie.

Par ailleurs il est impératif que tu utilises mysql_real_escape_string() (cf la doc)


Cordialement,


Kohntark -
Messages postés
31
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
1 novembre 2012

<?php


$tab_region = array("Choississez une région",
"Alsace",
"Aquitaine",
"Auvergne",
"Basse Normandie",
"Bourgogne",
"Bretagne",
"Centre",
"Chanpagne-Ardenne",
"Corse",
"Franche-Comté",
"Haute Normandie",
"Ile-de-France",
"Languedoc-Roussillon",
"Limousin",
"Lorraine",
"Midi-Pyrénées",
"Nord-Pas-de-de-Calais",
"Pays de la Loire",
"Picardie",
"Poitou-Charentes",
"Provence",
"Côte d'Azur",
"Alpes",
"Rhône-Alpes");

$tab_rubrique = array("Choissisez une rubrique",
"Robes de Mariée",
"Costumes homme",
"Mode enfant",
"Robes de cocktail",
"Accessoires femme",
"Accessoires homme",
"Alliances, bijoux",
"Coiffure",
"Maquillage",
"Parfums",
"Manucure",
"Salons de beauté",
"Produits de beauté",
"Salles et lieux",
"Faire part",
"Décoration et fleurs",
"Traiteurs",
"Gâteaux",
"Vin et champagne",
"Dragées",
"Animation",
"Photos et vidéo",
"Location de véhicule",
"Accessoires de fête",
"Voyage de noces",
"Wedding planners");
?>


le code du formulaire :
<form name="form" id="form" method="post" action="verif-ajout-pro.php" onsubmit="return valider()">
Nom du pro.,
,

----

Adresse,
</textarea>,

----

Code Postal,
,

----

Ville,
,

----

Région,
<select name="region" id="region">
<?php
foreach($tab_region as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Téléphone,
,

----

Fax,
,

----

e-mail,
,

----

Site internet,
,

----

Rubrique,
<select name="rubrique" id="rubrique">
<?php
foreach($tab_region as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Présentation,
<textarea name="presentation" cols="30" rows="6" id="presentation"></textarea>
5 lignes maximum,

----

Mots clés,
<textarea name="key" cols="30" rows="6" id="key"></textarea>,

----


</form>



<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");


if(isset($_POST['submit']){
$nom = trim(htmlentities($_POST['nom'], ENT_QUOTES));
$adresse = trim(htmlentities($_POST['adresse'], ENT_QUOTES));
$postal = trim(htmlentities($_POST['cp'], ENT_QUOTES));
$ville = trim(htmlentities($_POST['ville'], ENT_QUOTES));
$region = trim(htmlentities($_POST['region'], ENT_QUOTES));
$tel = trim(htmlentities($_POST['tel'], ENT_QUOTES));
$fax = trim(htmlentities($_POST['fax'], ENT_QUOTES));
$email = trim(htmlentities($_POST['email'], ENT_QUOTES));
$lien = trim(htmlentities($_POST['lien'], ENT_QUOTES));
$rubrique = trim(htmlentities($_POST['rubrique'], ENT_QUOTES));
$presentation = trim(htmlentities($_POST['presentation'], ENT_QUOTES));
$keys = trim(htmlentities($_POST['keys'], ENT_QUOTES));

//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,keys,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$keys."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
//execution de la requete
$result=mysql_query($requete);
print_($result);
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
}
?>
Messages postés
31
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
1 novembre 2012

<?php


$tab_region = array("Choississez une région",
"Alsace",
"Aquitaine",
"Auvergne",
"Basse Normandie",
"Bourgogne",
"Bretagne",
"Centre",
"Chanpagne-Ardenne",
"Corse",
"Franche-Comté",
"Haute Normandie",
"Ile-de-France",
"Languedoc-Roussillon",
"Limousin",
"Lorraine",
"Midi-Pyrénées",
"Nord-Pas-de-de-Calais",
"Pays de la Loire",
"Picardie",
"Poitou-Charentes",
"Provence",
"Côte d'Azur",
"Alpes",
"Rhône-Alpes");

$tab_rubrique = array("Choissisez une rubrique",
"Robes de Mariée",
"Costumes homme",
"Mode enfant",
"Robes de cocktail",
"Accessoires femme",
"Accessoires homme",
"Alliances, bijoux",
"Coiffure",
"Maquillage",
"Parfums",
"Manucure",
"Salons de beauté",
"Produits de beauté",
"Salles et lieux",
"Faire part",
"Décoration et fleurs",
"Traiteurs",
"Gâteaux",
"Vin et champagne",
"Dragées",
"Animation",
"Photos et vidéo",
"Location de véhicule",
"Accessoires de fête",
"Voyage de noces",
"Wedding planners");
?>


le code du formulaire :
<form name="form" id="form" method="post" action="verif-ajout-pro.php" onsubmit="return valider()">
Nom du pro.,
,

----

Adresse,
</textarea>,

----

Code Postal,
,

----

Ville,
,

----

Région,
<select name="region" id="region">
<?php
foreach($tab_region as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Téléphone,
,

----

Fax,
,

----

e-mail,
,

----

Site internet,
,

----

Rubrique,
<select name="rubrique" id="rubrique">
<?php
foreach($tab_rubrique as $k=>$v){
echo "<option value=\"$k\">$v</option>";
}
?>
</select>,

----

Présentation,
<textarea name="presentation" cols="30" rows="6" id="presentation"></textarea>
5 lignes maximum,

----

Mots clés,
<textarea name="key" cols="30" rows="6" id="key"></textarea>,

----


</form>



<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");


if(isset($_POST['submit']){
$nom = trim(htmlentities($_POST['nom'], ENT_QUOTES));
$adresse = trim(htmlentities($_POST['adresse'], ENT_QUOTES));
$postal = trim(htmlentities($_POST['cp'], ENT_QUOTES));
$ville = trim(htmlentities($_POST['ville'], ENT_QUOTES));
$region = trim(htmlentities($_POST['region'], ENT_QUOTES));
$tel = trim(htmlentities($_POST['tel'], ENT_QUOTES));
$fax = trim(htmlentities($_POST['fax'], ENT_QUOTES));
$email = trim(htmlentities($_POST['email'], ENT_QUOTES));
$lien = trim(htmlentities($_POST['lien'], ENT_QUOTES));
$rubrique = trim(htmlentities($_POST['rubrique'], ENT_QUOTES));
$presentation = trim(htmlentities($_POST['presentation'], ENT_QUOTES));
$keys = trim(htmlentities($_POST['keys'], ENT_QUOTES));

//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,keys,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$keys."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
//execution de la requete
$result=mysql_query($requete);
print_($result);
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
}
?>
Messages postés
31
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
1 novembre 2012

désolé davoir fait le post 2 fois, le deusiéme est fonctionnel ;)
Messages postés
10
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 janvier 2010

Merci à tous.
J'ai corrigé la syntax de syndrael et ça me donne cette erreur : Le compte de colonne ne correspond pas au compte de valeur à la rangée 1 (Column count doesn't match value count at row 1).
mtrix : j'ai une erreur de syntax à ce niveau : if(isset($_POST['submit']){

J'ai retouché un peu le code de mon fichier verif_ajout_pro.php
J'ai maintenant une nouvelle erreur :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'keys,telephone,fax,email,lien) VALUES ('Kombawa films', '1, rue du Château', ''' at line 1

Je n'y comprends plus rien
Voici le code que j'ai intégré :
<?php
// connexion à la base de données
mysql_connect("","","");
mysql_select_db("");
//construction de la requete d'ajout
$requete= "INSERT INTO annuaire (nom,adresse,postal,ville,region,rubrique,presentation,keys,telephone,fax,email,lien) VALUES ('".$nom."', '".$adresse."', '".$postal."', '".$ville."', '".$region."', '".$rubrique."', '".$presentation."', '".$keys."', '".$telephone."', '".$fax."', '".$email."', '".$lien."')";
$result=mysql_query($requete) or die(mysql_error());
print_($result);
//affichage de la requete
echo "<center>Merci ! le professionnel a bien été ajoutée</center>";
//redirection vers la page d'accueil de l'administration
echo"<META HTTP-EQUIV='refresh' CONTENT='5; URL=index.php'>";
?>


Je ne sais pas si il n'y a pas un problème compatibilité entre mon code et la base, mon code pourrait il être obsolète ?
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Re,

keys est un mot réservé Mysql.
Tu ferais mieux de renommer ce champ.
Au pire tu peux l'entourer comme ça `keys`



Kohntark -
Messages postés
10
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 janvier 2010

kohntark. merci beaucoup.
j'ai changé keys par mot_cle et là.... ça marche.
j'ai juste un dernier problème, dans ma base, les caractères avec accents ne s'affiche pas. exemple : forêt = forêt. Cela vient til du choix de l'interclassement ? j'ai choisi latin1_general_cs.
Messages postés
2380
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Non, pas fatigué..
Ma mauvaise foi légendaire mettra en avant l'heure de la pause kawa, donc taper d'une main n'est pas mon fort. Puis (légendaire la mauvaise foi..), insérer des erreurs dans une solution est aussi un moyen de faire réagir mon interlocuteur. Le copier-coller simple n'apporte rien..
Allez je refile manger ma clémentine.
S.
Messages postés
10
Date d'inscription
dimanche 2 avril 2006
Statut
Membre
Dernière intervention
13 janvier 2010

bon j'ai trouvé le problème des caractère.
encore merci à tous
Messages postés
3
Date d'inscription
vendredi 6 février 2015
Statut
Membre
Dernière intervention
6 février 2015

je pense que sais un peu répétitive mais vous devez redéfinir les variable avant de coder la requête sql après la connexion à la base de données.essaiyer voir si ça aussi va marcher