Enregistrement dans bdd mysql

cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009 - 24 févr. 2009 à 10:33
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009 - 24 févr. 2009 à 11:50
Bonjour a tous, voila j'ai un petit problème.
J'ai un formulaire d'insertion dans ma base, ce formulaire concerne une table de ma base mais seulement certains champs. mon script d'insertion est bien lu par mon programme mais aucunes insertions n'est effectuée dans ma base. Voici mon script SQL INSERT.


<?php
require_once('../connexion.php');
if ($db)
{
//allocation des variables
$numFiche="";
$LienFiche="";
$dateicdt=$_POST['AnotherDate'];
$heuricdt=$_POST['heure_icdt'];
$desicdt=$_POST['descrip_icdt'];
$desresol="";
$dateresol="";
$heuresol="";
$inter="";
$observ=$_POST['observation'];
$motifreouv="";
$teamtrack="";
$remarqueresp="";
$majeur=$_POST['choix'];
$matereiel=$_POST['lstmateriel'];
$secteur=$_POST['lstSecteur'];
$staticdt="ouv";
$statuprod=$_POST['lstStatutProd'];
$declarant=$_POST['lstdeclarant'];
$query="SELECT NumEmploye FROM employer WHERE Nom='".$declarant."';";
$numemployer=mysql_query($query);
$prestataire=$_POST['lstPrestataire'];


$query ="INSERT INTO incidents VALUES( '$numFiche', '$LienFiche', '$dateicdt', '$heuricdt', '$desicdt', '$desresol', '$dateresol', '$heuresol', '$inter', '$observ', '$motifreouv', '$teamtrack', '$remarqueresp', '$majeur', '$matereiel', '$secteur', '$staticdt', '$statuprod', '$numemployer', '$prestataire')";
$result= mysql_query($query);
echo'L\'incident souhaiter a bien été renseigner !!';
}
else
{
'Problème a la connexion';
}
?>


ps: pour davantage de renseignement n'hesiter pas a me poser des questions

23 réponses

cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 10:44
Utilise
mysql_error(); qui te fournira une explication sur l'erreur

mysql_query($query) or die(mysql_error());
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 10:47
bonjour sodam et merci d'avoir de ta reponse
j'ai donc ajouter or die(mysql_error()); et la reponse que j'obtiens me dit No database selected, hors je ne comprend car comme tu peux le voir au debut de mon script j'appel un fichier connexion.php qui gere justement les connexion a ma base.
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 10:48
Dailleur il se connecte bien puisque sinon il mafficherais mon mesasge d'erreur
0
cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 10:48
Tu utilises bien mysql_select_db?

Tu peux me montrer ton code de connexion.php en cachant les mot de passe bien sur?
0

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

Posez votre question
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 10:50
<?php
//paramètres de la connexion
$hostname = "localhost"; //nom du serveur
$database = "incidents_editiques"; //nom de la base de données
$username = ""; //nom d'utilisateur
$password = ""; //mot de passe
$db = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
?>
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 10:51
ce connexion.php fonctionne tres bien avec d'autre formulaire de mon application
je pense donc que mon erreur viens plutot du sql
0
cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 10:51
Rajoute mysql_select_db($database);

http://www.manuelphp.com/php/function.mysql-select-db.php
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 10:58
Voila le connexion.php que sa me donne
<?php
//paramètres de la connexion
$hostname = "localhost"; //nom du serveur
$database = "incidents_editiques"; //nom de la base de données
$username = ""; //nom d'utilisateur
$password = ""; //mot de passe
$db = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);

$link = mysql_connect('localhost', '', '');
if (!$link)
{
die('Impossible de se connecter : ' . mysql_error());
}// Rendre la base de données incidents_editiques, la base courante
$db_selected = mysql_select_db('incidents_editiques', $link);
if (!$db_selected)
{
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
?>


et voila le nouveau message d'erreur

Cannot add or update a child row: a foreign key constraint fails (`incidents_editiques/incidents`, CONSTRAINT `fk_Employer` FOREIGN KEY (`NumEmploye`) REFERENCES `employer` (`NumEmploye`))
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 10:58
ps: j'ai oublier de le preciser mais je debute en php
0
cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 11:02
Traduit ton message d'erreur en français :-)
Tu as une clé étrangère dans ta table, le numéro d'employer.
Tu dois donc d'abord avoir créé l'empoyer que tu utilises dans l'incident.
Ici tu essaye d'ajouter un incident avec un numéro d'employer qui n'existe pas dans la table employer, d'où l'erreur.
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:05
Alors y'a un gros prblème car je fait saisir a l'utilisateur un N°d'Employer en effet sauf que je lui fait saisir via une liste déroulante qui est alimenter par ma table employer. et le numero saisi est forcement dans ma table employer
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:08
je viens de verifier et c'est bien ce que je dit les n°d'Employer present dans ma liste deroulante sont bien bien ceux de ma table employer et donc lemployer saisi existe forcement d'ou le message d'erreur qui devient un peu bizard par consequent
0
cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 11:11
Je peux voir le code de la liste déroulante?
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:13
Voici le code de ma liste deroulante

<SELECT name="lstdeclarant" size="1">
<option value=""></option>
<?php
$sql="SELECT Nom, Prenom FROM employer ORDER BY NumEmploye ASC";
$req=mysql_query($sql) or die(mysql_error());
while($mat = mysql_fetch_array($req))
{
echo '<option value="'.$mat['Nom'].'">' . $mat['Nom'] . ' '. $mat['Prenom'] . '</option>';
}
?>
</SELECT>


ps: jviens de voir ton site, t'as un bon CV ^^ jtemboche lol
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:17
J'aime bien ton site serieux
simple
et ta rubrique service est impressionnante, comment as-tu appris a maitriser tout sa?

je suis un petit peu impressionner, a coter de toi je suis une larve ^^
0
cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 11:19
Mon cv n'est plus à jour.

Ta clé étrangère ce n'est pas un numéro (identifiant) genre EmployerID?




value="'.$mat['Nom'].'"

Ici tu enregistres le nom de l'employer comme clé étrangère.
Tu peux me faire une description de ta table employer?
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:25
Voici ma table employer

CREATE TABLE `employer` (
`NumEmploye` varchar(6) NOT NULL,
`Nom` varchar(25) NOT NULL,
`Prenom` varchar(25) NOT NULL,
`Fonction` varchar(40) NOT NULL,
PRIMARY KEY (`NumEmploye`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ce qui me sert de clef etrangere danscette table est NumEmploye
0
cs_Sodams Messages postés 57 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 18 novembre 2009
24 févr. 2009 à 11:26
Donc tu dois mettre

<option value="'.$mat['NumEmploye'].'">

et non

<option value="'.$mat['Nom'].'">
0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:30
Ca c'est que j'avai fait au debut mais lorsque je fait sa ma fonction javascript ( pour verifier la saisie me dit que mon empolyer n'est pas saisi.

voici mon formulaire complet tu comprendra mieu que mes explications



0
cs_arkonara Messages postés 165 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 28 novembre 2009
24 févr. 2009 à 11:30
une bonne moitier de ce formulaire concerne le calendrier
0
Rejoignez-nous