Problème MYSQL
Résolu
fab0
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
fab0 Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
fab0 Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
Voici mon problème je n'arrive pas à récuperer les requêtes de mes listes déroulantes ainsi que la valeur de mes boutons radios dans ma base de donnée. Cela est d'autant plus bizarre que je fais un echo de ma requête et que je vois bien la valeur de mes champs séléctionnés.
exemple avec une de mes listes déroulantes:
Voici la requête (il y a tout les champs ça fait un peu long lol):
graca à mon echo requête je vois bien que je récupère tout les valeurs mais dès que je fais un tour dans ma table les champs qui correspondent à une liste déroulante comme "métiers" ne sont pas récupérés.
Si vous pouviez m'aider ce serait sympa. Merci d'avance.
Si je ne répond pas à vos réponses tout de suite c'est que je vais au boulot.
Voici mon problème je n'arrive pas à récuperer les requêtes de mes listes déroulantes ainsi que la valeur de mes boutons radios dans ma base de donnée. Cela est d'autant plus bizarre que je fais un echo de ma requête et que je vois bien la valeur de mes champs séléctionnés.
exemple avec une de mes listes déroulantes:
<td>Profession : </td> <td><select name="metiers"> <option value="">faites votre choix</option> <option value="metier_1">Ouvrié</option> <option value="metier_2">Technicien</option> <option value="metier_3">Cadre</option> <option value="metier_4">Profession libérale</option> </select></td>
Voici la requête (il y a tout les champs ça fait un peu long lol):
<?php include ("../fonction_php_mysql/fonction.php"); ouvreBase(); $requete = "INSERT INTO adherents VALUES (null,' ".$_POST["nom"]." ', ' ".$_POST["prenom"]." ',' ".$_POST["login"]." ',' ".$_POST["email"]." ', ' ".$_POST["adresse"]." ',' ".$_POST["ville"]." ', ' ".$_POST["cp"]." ',' ".$_POST["tel_fixe"]." ', ' ".$_POST["tel_port"]." ',' ".$_POST["metiers"]." ',' ".$_POST["mdp"]." ',' ".$_POST["civils"]." ', ' ".$_POST["sexe"]." ',' ".$_POST["age"]." ',' ".$_POST["etudes"]." ', ' ".$_POST["inscription"]." ',' ".$_POST["commentaire"]." ')"; ////////////////////test la requête////////////////////////////////////////////////////// echo "$requete";
graca à mon echo requête je vois bien que je récupère tout les valeurs mais dès que je fais un tour dans ma table les champs qui correspondent à une liste déroulante comme "métiers" ne sont pas récupérés.
Si vous pouviez m'aider ce serait sympa. Merci d'avance.
Si je ne répond pas à vos réponses tout de suite c'est que je vais au boulot.
A voir également:
- Problème MYSQL
- Mysql community server - Télécharger - Bases de données
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Access vs mysql - Forum Webmastering
6 réponses
As-tu essayé de copier cette requête dans phpMyAdmin pour t'assurer qu'elle fonctionne ? Si ton serveur n'affiche pas les erreurs (tu peux le forcer en mettant "error_reporting(E_ALL)" au début du script - de tête, je suis pas certain de l'orthographe), il se peut qu'il y ait une erreur de syntaxe...
Il y a une autre chose à laquelle je pense en voyant ton code: que se passe-t-il à ton avis si un des champs (la ville par exemple) contient un apostrophe ( ' ) ? MySQL va prendre l'apostrophe pour la fin du champ et va chercher la virgule juste après, qu'il ne trouvera pas -> erreur. Il faut que tu passes tes valeurs dans une fonction d'echappement (me souviens plus son nom... elle commence probablement par "mysql_" et devrait contenir "escape" :P )
Il y a une autre chose à laquelle je pense en voyant ton code: que se passe-t-il à ton avis si un des champs (la ville par exemple) contient un apostrophe ( ' ) ? MySQL va prendre l'apostrophe pour la fin du champ et va chercher la virgule juste après, qu'il ne trouvera pas -> erreur. Il faut que tu passes tes valeurs dans une fonction d'echappement (me souviens plus son nom... elle commence probablement par "mysql_" et devrait contenir "escape" :P )
Bonsoir Chaka,
Désolé de ne pas avoir répondu avant, je comprendrai très bien que tu ne réponde pas à ce post. Mais je voulais juste te dire que je n'ai pas résolu mon problème je n'arrive toujours pas à récupérer les valeurs de mes listes déroulantes dans ma BD alors que le résultat de mes sélections apparaît très bien lorsque je fais un echo de ma requête.
Désolé de ne pas avoir répondu avant, je comprendrai très bien que tu ne réponde pas à ce post. Mais je voulais juste te dire que je n'ai pas résolu mon problème je n'arrive toujours pas à récupérer les valeurs de mes listes déroulantes dans ma BD alors que le résultat de mes sélections apparaît très bien lorsque je fais un echo de ma requête.
Rebonjour,
dans ma Base de Donnée j'ai déclaré ma liste déroulante de la manière suivante si cela peut aider.
Merci d'avance à ceux qui s'attarderont sur mon problème.
Ps: je sais pas si il est utile de précisé que je suis novice, je pense que tout le monde l'aura compris LOL.
dans ma Base de Donnée j'ai déclaré ma liste déroulante de la manière suivante si cela peut aider.
`metiers` enum('ouvr','tech','cad','prof_lib') NOT NULL default 'ouvr',
Merci d'avance à ceux qui s'attarderont sur mon problème.
Ps: je sais pas si il est utile de précisé que je suis novice, je pense que tout le monde l'aura compris LOL.
Salut ! Pas besoin de chercher plus loin ...
Quand tu fais INSERT INTO tu mets $_POST['metiers'] et tu as mis avant <select name="metiers">
<option value="">faites votre choix</option>
<option value="metier_1">Ouvrié</option>
<option value="metier_2">Technicien</option>
<option value="metier_3">Cadre</option>
<option value="metier_4">Profession libérale</option>
donc ça veut dire que métiers à pour valeur metier_1 OU metier_2 OU metier_3 OU metier_4. Et dans ta base tu as spécifié metiers` enum('ouvr','tech','cad','prof_lib'), c'est-à-dire que "metiers" ne peut avoir comme valeurs possibles QUE ouvr OU tech OU cad OU prof_lib ... Alors soit tu changes ton formulaire pour mettre VALUE="ouvr" etc, soit tu change l'enum de ta base de données.
En espérant être le plus clair possible.
Quand tu fais INSERT INTO tu mets $_POST['metiers'] et tu as mis avant <select name="metiers">
<option value="">faites votre choix</option>
<option value="metier_1">Ouvrié</option>
<option value="metier_2">Technicien</option>
<option value="metier_3">Cadre</option>
<option value="metier_4">Profession libérale</option>
donc ça veut dire que métiers à pour valeur metier_1 OU metier_2 OU metier_3 OU metier_4. Et dans ta base tu as spécifié metiers` enum('ouvr','tech','cad','prof_lib'), c'est-à-dire que "metiers" ne peut avoir comme valeurs possibles QUE ouvr OU tech OU cad OU prof_lib ... Alors soit tu changes ton formulaire pour mettre VALUE="ouvr" etc, soit tu change l'enum de ta base de données.
En espérant être le plus clair possible.
Merci Darshu pour ta réponse mais j'ai toujours le même problème. Je vais donc essayé de détailler du mieux que possible mon site.
1°Page inscritpion formulaire en html:
liste déroulante:
2° Page envoi requête:
3°Résultat de ma requête:
4° Voici ma table MYSQL:
5° Voici comment ma table récupere ma requête:
Alors voilà nous y sommes les champs avec les côtes vides sont les listes déroulantes que ma table ne récupère pas. Pourtant comme on peut le voir au petit 3° ma requête contient bien tout les valeurs que je saisi dans mon formulaire html.
Je vous remercie tous pour l'aide que vous m'apportez.
1°Page inscritpion formulaire en html:
liste déroulante:
<td>Profession : </td> <td><select name="metiers"> <option value="">faites votre choix</option> <option value="ouvr">Ouvrié</option> <option value="tech">Technicien</option> <option value="cad">Cadre</option> <option value="prof_lib">Profession libérale</option> </select> </td>
2° Page envoi requête:
<?php include ("../fonction_php_mysql/fonction.php"); ouvreBase(); $requete = "INSERT INTO adherents VALUES (null,' ".$_POST["nom"]." ', ' ".$_POST["prenom"]." ',' ".$_POST["login"]." ',' ".$_POST["email"]." ', ' ".$_POST["adresse"]." ',' ".$_POST["ville"]." ', ' ".$_POST["cp"]." ',' ".$_POST["tel_fixe"]." ', ' ".$_POST["tel_port"]." ',' ".$_POST["metiers"]." ',' ".$_POST["mdp"]." ',' ".$_POST["civils"]." ', ' ".$_POST["sexe"]." ',' ".$_POST["age"]." ',' ".$_POST["etudes"]." ', ' ".$_POST["inscription"]." ',' ".$_POST["commentaire"]." ')"; ////////////////////test la requête////////////////////////////////////////////////////// echo "$requete"; ///////////////////////////////////////////////// $result = mysql_query($requete); if ($result ==0) echo ("Impossible d'effectuer la requete"); fermerBase(); ?>
3°Résultat de ma requête:
INSERT INTO adherents VALUES (null,' julio ', ' Jacko ',' fabou ',' je ne sais@cdur.com ', ' 1 rue du bac ',' paris ', ' 75000 ',' 0123568978 ', ' 7878787878 ',' tech ',' 235689 ',' celi ', ' H ',' 27 ',' bac_p ', ' O ',' Voila tout est là ')
4° Voici ma table MYSQL:
CREATE TABLE `adherents` ( `Id_adherents` int(11) NOT NULL auto_increment, `nom` varchar(50) NOT NULL default '', `prenom` varchar(50) NOT NULL default '', `login` varchar(50) NOT NULL default '', `email` varchar(50) NOT NULL default '', `adresse` varchar(50) NOT NULL default '', `ville` varchar(50) NOT NULL default '', `cp` int(5) NOT NULL default '0', `tel_fixe` decimal(10,0) NOT NULL default '0', `tel_port` decimal(10,0) NOT NULL default '0', `metiers` enum('ouvr','tech','cad','prof_lib') NOT NULL default 'ouvr', `mdp` varchar(6) NOT NULL default '', `civils` enum('marie','celi','concu','pacs') NOT NULL default 'marie', `sexe` enum('H','F') NOT NULL default 'H', `age` int(3) NOT NULL default '0', `etudes` enum('bep','bac','bac_p','bac+') NOT NULL default 'bep', `inscription` enum('O','C') NOT NULL default 'O', `commentaire` tinytext, PRIMARY KEY (`Id_adherents`) )
5° Voici comment ma table récupere ma requête:
INSERT INTO `adherents` VALUES (10, ' julio', ' Jacko', ' fabou', ' je ne sais@cdur.com', ' 1 rue du bac', ' paris', 75000, 0123568978, 7878787878, '', ' 23568', '', '', 27, '', '', ' Voila tout est là ');
Alors voilà nous y sommes les champs avec les côtes vides sont les listes déroulantes que ma table ne récupère pas. Pourtant comme on peut le voir au petit 3° ma requête contient bien tout les valeurs que je saisi dans mon formulaire html.
Je vous remercie tous pour l'aide que vous m'apportez.
Hum, coïncidence ou pas, toujours est il que ça plante à chaque fois que t'a mis enum. Alors à ta place, surtout si ça vient d'une liste déroulante (les valeurs c'est TOI qui les fixe quand tu écris ton formulaire), je virerai les enum pour mettre des carchar(n) avec n le nombre maximal théorique (par exemple, varchar(8) pour les métiers).
Mais bon, c'est juste pour esquiver le problème, je ne sais pas pourquoi ça ne marche pas ...
Mais bon, c'est juste pour esquiver le problème, je ne sais pas pourquoi ça ne marche pas ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui j'avais regardé sur google mais je n'avais rien trouvé de concluant,
Voilà je te laisse et te remercie encore.
Voilà je te laisse et te remercie encore.