AnisLaSs
-
30 janv. 2013 à 16:00
cs_stay
Messages postés493Date d'inscriptionjeudi 7 juillet 2005StatutMembreDernière intervention24 mai 2017
-
31 janv. 2013 à 13:16
[b]Bonjour, j'ai un problème au niveau de l'insertion de données lorsque je laisse des champs vide dans le formulaire, la plus part des fois l'erreur est dans la requete n2 (d'apres mon msg d'erreur selon la condition d'exec des requetes SQL) je n'arrive pas à trouver l'erreur exactement.
Voila ma BD/b :
CREATE TABLE IF NOT EXISTS `tab_perso` (
`mat_perso` int(10) NOT NULL,
`Cin` int(10) NOT NULL,
`Nom` varchar(200) NOT NULL,
`Prénom` text NOT NULL,
`Date_naissance` date DEFAULT NULL,
`Localité` text,
`Sexe` set('Homme','Femme') NOT NULL,
`Situation` set('Célibataire','Divorcé(e)','Marié(e)','Veuf(ve)','') DEFAULT NULL,
`Diplôme` set('BAC','Technicien','Technicien sup','Licence','Maitrise','Master','Injénieur','Autre','') DEFAULT NULL,
`Spécialité` set('Marketing','Economie','Gestion','Finance','Informatique','Télécommunication','Commerce','Autre','') DEFAULT NULL,
`Num_phone` text,
`Nbr_enfant` int(11) DEFAULT NULL,
`Obs_perso` text,
PRIMARY KEY (`Cin`),
KEY `matricule` (`mat_perso`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `tab_profe` (
`Identifiant_Unique` int(10) DEFAULT NULL,
`Mail` varchar(50) DEFAULT NULL,
`Matricule` int(10) NOT NULL,
`Grade` text,
`Etat` set('Contractuel','Titulaire','') NOT NULL,
`Cathégorie` int(11) DEFAULT NULL,
`Service` set('vente',''Technique','Qualité','Reporting','Autre','') NOT NULL,
`Date_titularisation` date DEFAULT NULL,
`Site` set('D1,'D2','D3','') NOT NULL,
`Date_recrut` date DEFAULT NULL,
`Date_mut` date DEFAULT NULL,
`Direction_mut` text,
`Obs_profe` text,
PRIMARY KEY (`Matricule`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `tab_perso`
ADD CONSTRAINT `tab_perso_ibfk_2` FOREIGN KEY (`mat_perso`) REFERENCES `tab_profe` (`Matricule`) ON DELETE CASCADE ON UPDATE CASCADE;
le fichier PHP contenant le code d'insertion ci-dessous :
cs_stay
Messages postés493Date d'inscriptionjeudi 7 juillet 2005StatutMembreDernière intervention24 mai 20174 31 janv. 2013 à 10:21
Par déduction, car sa ne vient pas de la table, n'y du formulaire html.
Il reste les conditions dans les instructions (if, else, etc...).
Voir même, les valeurs attribués au valeur nulle qui sont elle même nulle car mal instruite.
C'est à voir.
sylvain64520
Messages postés130Date d'inscriptionlundi 11 janvier 2010StatutMembreDernière intervention 7 juin 2013 30 janv. 2013 à 16:37
Si tu affiches tes requêtes avec des echos et que tu les exécutes directement dans la bdd ?
J'ai essayé sur mon poste, tout fonctionne (du moins la première requête).
As-tu bien renseigné la propriété "name" de chaque champ de ton formulaire ?
Utilises-tu la même librairie entre la connexion à la bdd et l'envoie de la requête à la bdd ? (mysql_query => quel est ton script de connexion ?)
cs_stay
Messages postés493Date d'inscriptionjeudi 7 juillet 2005StatutMembreDernière intervention24 mai 20174 30 janv. 2013 à 17:36
Salut, si l'erreur vient uniquement quand les input ne sont pas remplies.
Alors, c'est très simple, la configuration de certains champs dans ta table sont par défaut en NOT NULL.
Il te suffit de cocher NULL.
Tu as des également des problèmes de sécurité SQL. Fait attention aux injections.
Tu peux lire ceci PHP, MySQL Et La Sécurité
Salut, @Sylvain j'ai bien vérifié les inpute "name" tt est dans l'ordre et pour l'exec des requetes SQL, c'est toujours la 2ieme qui ne marche pas lorsque je laisse des champs vide par contre, qd je rempli tt le formulaire tt fonctionne !!!! :(
voila le code de cnx :
$hostname_Connex = 'localhost'; //Nom de l'hote
$database_Connex = 'rh'; //Nom de la base de données
$username_Connex = 'root'; //Nom d'utilisateur mySQL
$password_Connex = ''; //Mot de passe de l'utilisateur
$Connex = mysql_pconnect($hostname_Connex, $username_Connex, $password_Connex) or die("Impossible de se connecter : " . mysql_error());
//******************************************************
//SELECTIONNER LA BASE DE DONNES *
//******************************************************
mysql_select_db($database_Connex,$Connex) or die(mysql_error());
@Stay : les champs qui sont deja mis en NOT NULL j' ai mis une condition lors de l'enregistrement pour obliger l'utilisateur de les remplir chaque fiche doit contenir au moin matricule nom , prénom , cin ...
(A propos merci pour le lien " PHP, MySQL Et La Sécurité ")
Vous n’avez pas trouvé la réponse que vous recherchez ?
rq : concernant la page modifier_perso.php si je vide les mémes champs qui génére une erreur dans insert_perso.php ça fonctionne toujours ; je pense que c pas un pb de structure de BD et c pas un pb de name input non plus ... je c pas si je suis dans la bonne direction pour la solution...