tophe33
Messages postés10Date d'inscriptiondimanche 2 avril 2006StatutMembreDernière intervention13 janvier 2010
-
7 janv. 2010 à 09:28
fbsm
Messages postés3Date d'inscriptionvendredi 6 février 2015StatutMembreDernière intervention 6 février 2015
-
6 févr. 2015 à 14:50
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.,
,
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
A voir également:
Intégration des données du formulaire dans la base
tophe33
Messages postés10Date d'inscriptiondimanche 2 avril 2006StatutMembreDernière intervention13 janvier 2010 8 janv. 2010 à 08:19
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'>";
?>
tophe33
Messages postés10Date d'inscriptiondimanche 2 avril 2006StatutMembreDernière intervention13 janvier 2010 7 janv. 2010 à 11:47
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
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 7 janv. 2010 à 21:01
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)
//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'>";
}
?>
//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'>";
}
?>
tophe33
Messages postés10Date d'inscriptiondimanche 2 avril 2006StatutMembreDernière intervention13 janvier 2010 8 janv. 2010 à 07:28
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 ?
tophe33
Messages postés10Date d'inscriptiondimanche 2 avril 2006StatutMembreDernière intervention13 janvier 2010 8 janv. 2010 à 08:18
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.
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 8 janv. 2010 à 09:17
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.
fbsm
Messages postés3Date d'inscriptionvendredi 6 février 2015StatutMembreDernière intervention 6 février 2015 6 févr. 2015 à 14:50
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