PHP ET MYSQL

Résolu/Fermé
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009 - 1 mai 2009 à 17:46
 le père - 1 mai 2009 à 23:08
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>
A voir également:

38 réponses

infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2
1 mai 2009 à 20:13
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
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 20:17
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?
0
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2
1 mai 2009 à 20:25
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
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 21:20
ya plus personne pour maider?? toujours pas résolu mon probleme qui peut m'aider??^^
merci à vous
0

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

Posez votre question
Dans quel état est ton code et quels sont les symptômes actuellement ?
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 22:09
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 ();

?>
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:13
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
$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
0
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.
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:24
oupss c'est exact que dans ma 1ere reponse j'ai rajouté le nom des champs et laisser le '' des values merci ctrlC .. lol !
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 22:26
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 ();

?>
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:29
<?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
0
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
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:37
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
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'); 
0
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());
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:43
bien vu ;-)
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:52
$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 ..
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 22:52
je sais pas d'ou venait mon erreur mais un grand merci a vous deux ca fonctionne ENFINNNNNNNNN

j'vais bien dormir cette nuit^^
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:53
et elle venait d'ou ton erreur ?
0
le père > lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015
1 mai 2009 à 22:57
la sienne je ne sais pas, mais je peux te montrer celle de ton message 39
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352 > le père
1 mai 2009 à 22:58
ah ?

edit je crois que j'ai vu..
j'ai mis ça "''));

alors que c'etait ca
"') ');

l'erreur est humaine et la fatigue aussi lol !..
0
le père > lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015
1 mai 2009 à 23:08
C'est bien d'être indulgent avec soi-même...
Errare humanum est, perseverare diabolicum... et dans le genre perseverare tu as fait assez fort
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 22:56
je sais pas j'ai tellement fait de modif tte cet aprem que franchment je suis incapable de le dire en tt cas votre requete fonctionne a merveille !merci bcp
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
1 mai 2009 à 22:57
de rien ;-)
0
damien35 Messages postés 80 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 1 décembre 2009
1 mai 2009 à 23:02
ouai jveu bien !!
0