Se connecter / S'enregistrer
Votre question

Probleme insert into pour site entreprise

Tags :
  • Primary
  • Programmation
Dernière réponse : dans Programmation
27 Mai 2009 15:24:16

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

Autres pages sur : probleme insert into site entreprise

27 Mai 2009 16:59:40

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.' )
27 Mai 2009 17:29:58

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
Contenus similaires
28 Mai 2009 09:27:33

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é.
28 Mai 2009 10:06:39

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
28 Mai 2009 10:35:41

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é.
28 Mai 2009 10:56:35

je reprends cette exemple :
insert into Question (Num_Question, Question, Reponse, Picture) values('.$num_ques.','.$question.','.$reponse.','.$reponse1.' )
28 Mai 2009 11:10:57

Merci d'utiliser le bbcode [code] c'est illisible ainsi.
28 Mai 2009 13:01:04

dsl je le ferais la prochaine fois
28 Mai 2009 13:26:19

Au passage ton code n'a aucune sécurité ... En 2 seconde ton site tombe ...
28 Mai 2009 13:27:38

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
28 Mai 2009 13:45:47

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
2 Juin 2009 14:14:19

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?
2 Juin 2009 14:49:19

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 ...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS