PHP ET MYSQL

Résolu
damien35 Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -  
 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>
A voir également:

38 réponses

infor3lmd Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   2
 
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   Statut Membre Dernière intervention  
 
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
le père
 
Dans quel état est ton code et quels sont les symptômes actuellement ?
0
damien35 Messages postés 80 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   352
 
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
le père
 
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   Statut Membre Dernière intervention   352
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   352
 
<?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
le père
 
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   Statut Membre Dernière intervention   352
 
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
le père
 
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   Statut Membre Dernière intervention   352
 
bien vu ;-)
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
$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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   352
 
et elle venait d'ou ton erreur ?
0
le père > lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   352 > le père
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   352
 
de rien ;-)
0
damien35 Messages postés 80 Date d'inscription   Statut Membre Dernière intervention  
 
ouai jveu bien !!
0