problème de requète

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème de requète

par Invité » 25 mai 2007, 16:34

merci pour ta réponse mais j'ai trouver la solution, effectivement grace a mysql_insert_id(), je me suis demerder.
en supprimant ma base relation et en ajoutant le champs ID_E dans la table cartes.

et voila .

ciao.

par Hubert Roksor » 25 mai 2007, 11:47

Code : Tout sélectionner

INSERT INTO relation(ID_C, ID_E) VALUES('projet.cartes.ID_C','projet.equipements.ID_E')
Tu insères des chaînes de caractères dans des champs texte, MySQL ne trouve pas la correspondance dans les tables de références et donc refuse d'insérer l'enregistrement. Remplace ces chaînes de caractères par les valeurs de ID_C et ID_E correspondantes. Je pense que la fonction que tu cherches est mysql_last_insert_id().

par zeus » 25 mai 2007, 11:10

Modération :
Anonymous, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

par alucard67 » 25 mai 2007, 10:37

upppp, svp quelqu'un aider moi :roll:

par alucard67 » 24 mai 2007, 16:39

ahh ui j'ai oublié de mettre aussi les requetes que j'execute dans mon script php:

le voici :

Code : Tout sélectionner

///////////////////////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 cette fois je pense qu'il y a tout.

problème de requète

par Invité » 24 mai 2007, 16:29

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:

Code : Tout sélectionner

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

Code : Tout sélectionner

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)
j'utilise la version 5.0.27 de mysql

J'espere que qulqu'un poura me filer un pitit coup de main.

Merci d'avance aux personne qui pouront m'aider, et j'espere qu'il y en aura.