PHP ET MYSQL
Résolu
damien35
Messages postés
80
Date d'inscription
Statut
Membre
Dernière intervention
-
le père -
le père -
Bonjour,
j'essai d'ajouter des données dans ma base sql a laide de php, j'y suis parvenu tt à l'heure une fois et j'ai du faire une erreur de manip et ca ne fonctionne plus je cherche mais je ne vois pas mon erreur voila le script :
aidez moi svp je galère!merci d'avance
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Accueil</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design3.css" />
</head>
<body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("camping");
if (isset($_POST['civilite'])
AND isset($_POST['nom'])
AND isset($_POST['prenom'])
AND isset($_POST['adresse'])
AND isset($_POST['codepostal'])
AND isset($_POST['ville'])
AND isset($_POST['telephone'])
AND isset($_POST['mail'])
AND isset($_POST['message']))
{
$civilite = mysql_real_escape_string(htmlspecialchars($_POST['civilite'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
$codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal']));
$ville = mysql_real_escape_string(htmlspecialchars($_POST['ville']));
$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO clients VALUES('', '" . $civilite . "', '" . $nom . "', '" .$prenom.'", "'.$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$message."')");
}
mysql_close();
?>
</body>
</html>
j'essai d'ajouter des données dans ma base sql a laide de php, j'y suis parvenu tt à l'heure une fois et j'ai du faire une erreur de manip et ca ne fonctionne plus je cherche mais je ne vois pas mon erreur voila le script :
aidez moi svp je galère!merci d'avance
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Accueil</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design3.css" />
</head>
<body>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("camping");
if (isset($_POST['civilite'])
AND isset($_POST['nom'])
AND isset($_POST['prenom'])
AND isset($_POST['adresse'])
AND isset($_POST['codepostal'])
AND isset($_POST['ville'])
AND isset($_POST['telephone'])
AND isset($_POST['mail'])
AND isset($_POST['message']))
{
$civilite = mysql_real_escape_string(htmlspecialchars($_POST['civilite'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
$codepostal = mysql_real_escape_string(htmlspecialchars($_POST['codepostal']));
$ville = mysql_real_escape_string(htmlspecialchars($_POST['ville']));
$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));
$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO clients VALUES('', '" . $civilite . "', '" . $nom . "', '" .$prenom.'", "'.$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$message."')");
}
mysql_close();
?>
</body>
</html>
A voir également:
- PHP ET MYSQL
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
38 réponses
ben je suis pas fort en sql mais
peut être le problème vient du fait que tu n'as pas de clé primaire dans ta table
pourquoi tu ne met pas un champ nommé 'id' auto-increment et qui soit t'as clé primaire tu ne va rien perdre
peut être le problème vient du fait que tu n'as pas de clé primaire dans ta table
pourquoi tu ne met pas un champ nommé 'id' auto-increment et qui soit t'as clé primaire tu ne va rien perdre
jvais essayer de metre un simple numero en clé primaire auto increment mai s doi je le signaler dans ma page php ou juste mettre des cotes dans la requete?
non pas un simple numéro,un simple champs nommé id entier auto-incrément
et ce champs c'est lui qui affecte des numéro a tes enregistrements et dans ton code php tu le signal juste dans ta requete sql avec des '' vide
et ce champs c'est lui qui affecte des numéro a tes enregistrements et dans ton code php tu le signal juste dans ta requete sql avec des '' vide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
donc j'ai toujours le meme probleme je n'arrive pas a insérer les données de mon formulaire dans ma base mysql
j'ai modifié le script au plus simple mais visiblement ca change rien je comprend pas je débute en plus c est la galère! J'ai aucune erreur qui s'affiche et aucune donnée qui s'ajoute!!
ma clé primaire de la table c'est l'id autoincrement! ton aide est la bienvenue!
voici mon script :
<?php
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$telephone = $_POST['telephone'];
$mail = $_POST['mail'];
$message = $_POST['message'];
mysql_query("INSERT INTO clients(nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES('', '".$nom."', '".$prenom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$mail."', '".$message."')");
}
mysql_close ();
?>
j'ai modifié le script au plus simple mais visiblement ca change rien je comprend pas je débute en plus c est la galère! J'ai aucune erreur qui s'affiche et aucune donnée qui s'ajoute!!
ma clé primaire de la table c'est l'id autoincrement! ton aide est la bienvenue!
voici mon script :
<?php
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$telephone = $_POST['telephone'];
$mail = $_POST['mail'];
$message = $_POST['message'];
mysql_query("INSERT INTO clients(nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES('', '".$nom."', '".$prenom."', '".$adresse."', '".$codepostal."', '".$ville."', '".$telephone."', '".$mail."', '".$mail."', '".$message."')");
}
mysql_close ();
?>
rajoute deja un champ id type int(11) autoincrement.
une clef dans ta config de table est nécessaire sinon je t'explique pas le basard pour retrouver un enregistrement.. ;-)
ensuite :
place un print_r($_POST) au debut de ta page histoire de voir si tu recupere bien tes valeurs post
puis
comme ça si ca marche ca te le dis et si ca marche pas tu vois ce que tu insere et ou tu l'insere
et pourquoi tu met une { ici
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
{
si tu a viré ton if isset il faut les enlever
une clef dans ta config de table est nécessaire sinon je t'explique pas le basard pour retrouver un enregistrement.. ;-)
ensuite :
place un print_r($_POST) au debut de ta page histoire de voir si tu recupere bien tes valeurs post
puis
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') or die (mysql_error()); if($req) { echo 'enregisttrement reussi'; } else { echo' un probleme est survenu<br/>'.$req; }
comme ça si ca marche ca te le dis et si ca marche pas tu vois ce que tu insere et ou tu l'insere
et pourquoi tu met une { ici
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
{
si tu a viré ton if isset il faut les enlever
Même pour un débutant, il y a des erreurs grossières dans ta requête, que tu n'avais pas dans ton premier message. Merci à ceux qui t'ont aidé à ajouter des erreurs là où il n'y en avait pas au lieu de t'aider à résoudre le vrai problème.
Si tu mets les noms des champs dans la requête, il faut qu'ils correspondent aux values. donc pas de '' (qui correspondait à un champ autoincrémenté que tu ne mets pas dans la liste) et une seule fois $mail
Et à la fin du mysql_query, ajoute un or die (mysql_error()) pour le cas où il y resterait un problème.
Si tu mets les noms des champs dans la requête, il faut qu'ils correspondent aux values. donc pas de '' (qui correspondait à un champ autoincrémenté que tu ne mets pas dans la liste) et une seule fois $mail
Et à la fin du mysql_query, ajoute un or die (mysql_error()) pour le cas où il y resterait un problème.
bon jai ajouté ce que tu m'a dit il m'indique ca maintenant mais je vois tjs pas quelle erreur j'aurais pu faire
Pour ce qui est de la clé j'avai déja mi une clé primaire (5) je vois pas ce que ta voulu me dire
voici l'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 '' at line 1
et mon script :
<?php
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$telephone = $_POST['telephone'];
$mail = $_POST['mail'];
$message = $_POST['message'];
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') or die (mysql_error());
}
if($req)
{
echo 'enregisttrement reussi';
}
else
{
echo' un probleme est survenu<br/>'.$req;
}
mysql_close ();
?>
Pour ce qui est de la clé j'avai déja mi une clé primaire (5) je vois pas ce que ta voulu me dire
voici l'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 '' at line 1
et mon script :
<?php
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base');
mysql_select_db("camping")OR die('Erreur de sélection de la base');
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$codepostal = $_POST['codepostal'];
$ville = $_POST['ville'];
$telephone = $_POST['telephone'];
$mail = $_POST['mail'];
$message = $_POST['message'];
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') or die (mysql_error());
}
if($req)
{
echo 'enregisttrement reussi';
}
else
{
echo' un probleme est survenu<br/>'.$req;
}
mysql_close ();
?>
<?php mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base'); mysql_select_db("camping")OR die('Erreur de sélection de la base'); //{ => inutile $nom = $_POST['nom']; $prenom = $_POST['prenom']; $adresse = $_POST['adresse']; $codepostal = $_POST['codepostal']; $ville = $_POST['ville']; $telephone = $_POST['telephone']; $mail = $_POST['mail']; $message = $_POST['message']; $req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') or die (mysql_error()); //} => inutile if($req) { echo 'enregisttrement reussi'; } else { echo' un probleme est survenu<br/>'.$req; } mysql_close ();
ca devrais marcher tu lui colle des {} alors qu'il y a plus de conditions
les { } n'empêchent pas de marcher.
Pas besoin de suggérer des manips qui n'ont aucun rapport avec le problème
Surtout qu'il faudra les remettre après quand il remettra les conditions
Pas besoin de suggérer des manips qui n'ont aucun rapport avec le problème
Surtout qu'il faudra les remettre après quand il remettra les conditions
oui mai lo on essaye de debogger un code simple alors autant faire simple .. ;-) non ?
apart l'utilisation melangée des ' et des " franchement je vois pas ou peut etre l'erreur (et c'est mon job..)
ton code
mon code
apart l'utilisation melangée des ' et des " franchement je vois pas ou peut etre l'erreur (et c'est mon job..)
ton code
mysql_connect("localhost", "root", "")OR die('Erreur de sélection de la base'); mysql_select_db("camping")OR die('Erreur de sélection de la base');
mon code
mysql_connect('localhost', 'root' '')OR die('Erreur de sélection de la base'); mysql_select_db('camping')OR die('Erreur de sélection de la base');
il manque une ) à la fin de la requête
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'")') or die (mysql_error());
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'")') or die (mysql_error());
$req=mysql_query('INSERT INTO clients (nom, prenom, adresse, codepostal, ville, telephone, mail, message) VALUES("'.$nom.'", "' .$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$telephone.'", "'.$mail.'", "'.$message.'"') );
euh j'ai retapé la requete en virant le or die ,
les ( sont correctes il me semble ..
euh j'ai retapé la requete en virant le or die ,
les ( sont correctes il me semble ..
je sais pas d'ou venait mon erreur mais un grand merci a vous deux ca fonctionne ENFINNNNNNNNN
j'vais bien dormir cette nuit^^
j'vais bien dormir cette nuit^^