Tom's Guide > Forum > Programmation > Probleme insert into pour site entreprise

Probleme insert into pour site entreprise

Forum Programmation : Probleme insert into pour site entreprise

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

bonjour,voila je dois realiser un site pour une entreprise mais quand je veux ajouter une question il m'envoie "erreur d'écriture" sa fait plusieur heure que je suis sur cette erreur et je ne trouve pas la solution .
voila les table:
Create table Application (
Id_application Int NOT NULL AUTO_INCREMENT,
nom_application Varchar(150) NOT NULL,
Index AI_Id_application (Id_application),
Primary Key (Id_application)) ENGINE = INNODB DEFAULT CHARSET=latin1 ;

Create table Question (
num_Id_application Int NOT NULL,
Id_Question Int NOT NULL AUTO_INCREMENT,
Num_Question Int,
Question Char(255),
Reponse Char(255),
Picture Char(255),
num_Id_Source Int NOT NULL,

Primary Key (Id_Question)) ENGINE =INNODB DEFAULT CHARSET=latin1 ;

Create table Source (
Id_Source Int NOT NULL AUTO_INCREMENT,
Libelle_Source Char(50),
Primary Key (Id_Source)) ENGINE = INNODB DEFAULT CHARSET=latin1 ;

alter table Question add foreign key (num_Id_application) references Application(Id_application);
alter table Question add foreign key (num_Id_Source) references Source(Id_Source);
commit;

et voila mon code :
<?php
$serveur='localhost';
$utilisateur='root';
$mdp='';
$bdd='faq_dsic';

$num_ques= $_POST['num_question'];
$question= $_POST['question'];
$reponse = $_POST['reponse'];
$application=$_POST['application'];
$source= $_POST['source'];
$reponse1 = $_POST['reponse'];

$MonObjConnexion= new mysqli($serveur,$utilisateur,$mdp,$bdd);

if (mysqli_connect_errno())
{echo "probleme de connexion à la base de données";
exit;}

$MaReq= "insert into Question values(' ',' ' ,'.$num_ques.','.$question.','.$reponse.','.$reponse1.,' ' )";


$ObjResultReq=$MonObjConnexion->query($MaReq);

if (! $ObjResultReq)

{ die ("Erreur d'écriture" );}

$MonObjConnexion->close();
?>
merci de votre aide


Message édité par nair le 27-05-2009 à 17:36:43
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

salut,

tes 2 premiers champs sont des int et ne doivent pas etre null et tu mets ' ' dedans...

essayes plutot une requete de cette forme :

insert into Question (Num_Question, Question, Reponse, Picture) values('.$num_ques.','.$question.','.$reponse.','.$reponse1.' )

Répondre à kakashi99

merci de m'aider c'est sympa j'ai effecter les changement que tu m'as dit cela n'a rien changé cela m'envoie toujour erreur d'écriture

Répondre à nair

Est-ce que tu peux montrer ton nouveau code ? parce qu'il y a une petite erreur que je n'avais pas vu au début :

$MaReq= "insert into Question values(' ',' ' ,'.$num_ques.','.$question.','.$reponse.','.$reponse1.,' ' )";

alors que ça marcherait mieux comme ça :

$MaReq= "insert into Question values(' ',' ' ,'".$num_ques."','".$question."','".$reponse."','".$reponse1."',' ' )";

et pour tester, fais un echo de ta requete avant de l'executer, et regarde si elle est bien formaté.

Répondre à kakashi99

j'ai recommancé tout mon code et se probleme est apparu :
Cannot add or update a child row: a foreign key constraint fails (`faq_dsic`.`question`, CONSTRAINT `question_ibfk_1` FOREIGN KEY (`id_application`) REFERENCES `application` (`id`))

Voila a nouveau mes tables :
-- phpMyAdmin SQL Dump
-- version 3.1.3
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 28 Mai 2009 à 11:05
-- Version du serveur: 5.1.32
-- Version de PHP: 5.2.9-1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `faq_dsic`
--

-- --------------------------------------------------------

--
-- Structure de la table `application`
--

CREATE TABLE IF NOT EXISTS `application` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom_application` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `nom_application` (`nom_application`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `application`
--

INSERT INTO `application` (`id`, `nom_application`) VALUES
(1, 'windows vista');

-- --------------------------------------------------------

--
-- Structure de la table `question`
--

CREATE TABLE IF NOT EXISTS `question` (
`id_question` int(15) NOT NULL AUTO_INCREMENT,
`num_question` int(12) NOT NULL,
`id_application` int(16) NOT NULL,
`nom_question` varchar(255) NOT NULL,
`reponse` varchar(255) NOT NULL,
`photo` blob NOT NULL,
`num_id_source` int(11) NOT NULL,
PRIMARY KEY (`id_question`),
KEY `id_application` (`id_application`),
KEY `num_id_source` (`num_id_source`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `question`
--


-- --------------------------------------------------------

--
-- Structure de la table `source`
--

CREATE TABLE IF NOT EXISTS `source` (
`id_source` int(11) NOT NULL AUTO_INCREMENT,
`nom_source` varchar(255) NOT NULL,
PRIMARY KEY (`id_source`),
UNIQUE KEY `nom_source` (`nom_source`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `source`
--

INSERT INTO `source` (`id_source`, `nom_source`) VALUES
(1, 'dsci');

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `question`
--
ALTER TABLE `question`
ADD CONSTRAINT `question_ibfk_1` FOREIGN KEY (`id_application`) REFERENCES `application` (`id`),
ADD CONSTRAINT `question_ibfk_2` FOREIGN KEY (`num_id_source`) REFERENCES `source` (`id_source`);


et mon code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="cine.css" rel="stylesheet" type="text/css" />
<title>ajouter la question</title>
</head>


<?php
//$serveur='localhost';
//$utilisateur='root';
//$mdp='';
//$bdd='faq_dsic';

$application = $_POST['application'];
$numero=$_POST['num_question'];
$question=$_POST['question'];
$reponse=$_POST['reponse'];
$source=$_POST['source'];


mysql_connect("localhost", "root", "" );
mysql_select_db("faq_dsic" );



if (mysqli_connect_errno())
{echo "probleme de connexion à la base de données";
exit;}
$application= mysql_query("INSERT INTO application(id,nom_application) VALUES ('','$application')" );
$source = mysql_query("INSERT INTO source (id_source,nom_source) VALUES('','$source')" )or die(mysql_error());
$question = mysql_query("INSERT INTO question VALUES ('','$numero','','$question','reponse','','') " )or die(mysql_error());


mysql_close();

?>
Votre question vient d'etre enregistrer avec succes
<br/>
<a href = " index.php">Menue</a>


encore merci de m'aider

Répondre à nair

heu dsl, mais dans mon post precedent j'ai remis un peu de ton code, mais c'etait pour l'exemple...

tout ce qui est en auto increment ne doit pas etre rensigné... donc il ne faut pas mettre de '' pour tes id etc... donc il faudrait que tu reprennes le tout premier exemple que je t'ai donné.

Répondre à kakashi99

je reprends cette exemple :
insert into Question (Num_Question, Question, Reponse, Picture) values('.$num_ques.','.$question.','.$reponse.','.$reponse1.' )

Répondre à nair

Merci d'utiliser le bbcode [code] c'est illisible ainsi.

------------------------------ 20minutes.fr, l'information en continu.
Répondre à SiM07

dsl je le ferais la prochaine fois

Répondre à nair

Au passage ton code n'a aucune sécurité ... En 2 seconde ton site tombe ...

------------------------------ 20minutes.fr, l'information en continu.
Répondre à SiM07

en faite mon probleme c'est que des que je m'est les champs id_question et num_id_source de ma table question en FOREIGN KEY (INNODB) alors ma requette sql insert into Question (Num_Question, Question, Reponse, Picture) values('.$num_ques.','.$question.','.$reponse.','.$reponse1.' ) ne marche pas c'est ça mon probleme

Répondre à nair

c'est pas pour moi se site.J'ai juste a faire le FAQ d'une partie du site et le rendre a l'entreprise la semaine prochaine mais si mon insert into ne marche pas je peux rien faire s'est cela le probleme


Message édité par nair le 28-05-2009 à 14:13:28
Répondre à nair

bonjour, voila je crois avoir trouvé le problème mais je ne s'est pas comment le résoudre en faite le problème vient de la liste déroulante car je veux rajouter l'id de l'application choisi dans la liste mais je ne s'est pas comment faire. je crois qu'il faut que je mette une requete sql sur le value mais comment?

Répondre à nair

Tu es rigolo ... Tu nous demandes de l'aide mais tu nous donnes même pas le message d'erreur exact ...

Si tu as vraiment un problème de clé étrangère, c'est à mon avis que tu références vers un élément inexistant. Mais bon, les messages d'erreur sont fait pour ça !

Et sincèrement, ca fait peur du code comme ça dans une entreprise ...

------------------------------ 20minutes.fr, l'information en continu.
Répondre à SiM07
Tom's Guide > Forum > Programmation > Probleme insert into pour site entreprise
Aller à :

Il y a 299 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens