RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | programmation
[MySql/Php]requete jointure de table Inoodb
alucard67, le ven. 25 mai 2007 à 10:07:49
Bonjour, je suis en train de fair un programme et j'ai quelque difficulté pour remplir ma base de données.

Alors voila ce que j'essay de faire:

Dans un premier temps je remplie une table "equipements" avec l'identifiant ID_E
ensuite je rempli une autre table "cartes" avec l'identifiant ID_C

ensuite pour fair le lien je creer une autre table relation avec les ID de mes deux tables qui sont ID_C et ID_E.

je veux que quand je rentre une données dans la table equipement et carte , les ID de ces derbniers soient mise a jour dans ma table .

pour ce fair j'ai rentré ces lignes dans phpmyadmin:

CREATE TABLE cartes (
ID_C tinyint(5) NOT NULL auto_increment,
description varchar(256) NOT NULL default '',
Serial varchar(250) NOT NULL default '',
HW_Version varchar(256) NOT NULL default '',
SW_Version varchar (256) NOT NULL default '',
PRIMARY KEY (ID_C)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE equipements (
ID_E tinyint(5) NOT NULL auto_increment,
IP varchar(20) NOT NULL default '',
marque varchar(20) NOT NULL default '',
nom varchar(20) NOT NULL default '',
PRIMARY KEY (ID_E)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

CREATE TABLE `relation` (
`ID_C` TINYINT( 5 ) NOT NULL ,
`ID_E` TINYINT( 5 ) NOT NULL ,
FOREIGN KEY ( ID_C ) REFERENCES cartes( ID_C ) ON DELETE CASCADE ON UPDATE CASCADE ,
FOREIGN KEY ( ID_E ) REFERENCES equipements( ID_E ) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = latin1 ;

et lorque je lance mon programme voila ce qu'affiche ma page

Erreur SQL dans la table relation !INSERT INTO relation(ID_C, ID_E) VALUES('projet.cartes.ID_C','projet.equipements.ID_E')
Cannot add or update a child row: a foreign key constraint fails (`projet/relation`, CONSTRAINT `relation_ibfk_2` FOREIGN KEY (`ID_E`) REFERENCES `equipements` (`ID_E`) ON DELETE CASCADE ON UPDATE CASCADE)

et les requetes que j'execute dans mon script php:

le voici :


/////AJOUT DES INFO DANS LA TABLE CARTES////////
for ($i=1;$i<=16;$i++)

{

$description=lire_ligne('reponse_snmp_motorola.txt',$i+16);
$serial=lire_ligne('reponse_snmp_motorola.txt',$i+32);
$HW=lire_ligne('reponse_snmp_motorola.txt',$i+48);
$SW=lire_ligne('reponse_snmp_motorola.txt',$i+64);


$sql = "INSERT INTO cartes(ID_C, description, serial, HW_version, SW_version) VALUES('','$description','$serial','$HW','$SW')";

// on insère les informations dans la table
mysql_query($sql) or die('Erreur SQL dans la table Carte !'.$sql.'<br>'.mysql_error());
}

////AJOUT DES INFOS DANS LA TABLE EQUIPEMENTS//////

$sql2 = "INSERT INTO equipements(ID_E, IP, marque, nom) VALUES('','$IP2','Motorola','$nom2')";
mysql_query($sql2) or die('Erreur SQL dans la table Equipement !'.$sql2.'<br>'.mysql_error());

//////AJOUT DES INFOS DANS LA TABLE RELATIONS////

$sql3= "INSERT INTO relation(ID_C, ID_E) VALUES('projet.cartes.ID_C','projet.equipements.ID_E')";
mysql_query($sql3) or die ('Erreur SQL dans la table relation !'.$sql3.'<br>'.mysql_error());


voila et je ne voi vraiment pas d'ou viens l'erreur je me suis casser les dents la dessus 2 jour , alors si une ame charitable voudrai bien voler a mon secour je lui serai tre tre reconnaissant.

merci d'avance! Configuration: Windows 2000
Internet Explorer 6.0


alucard67
mai 07
Suivant
REPONSES
alucard67
mai 07
anony
25 févr.
Version Web
Réalisé par RedShift
no save