Requête retournant résultat inattendu
Bonjour,
J'utilise 2 tables
Je rapatrie le contenu d'un fichier CSV vers la table "mailrse", je rempli le champ "mail_rse.Agence" en executant la requête "$eXtractAgence".
Voilà la strucuture des 2 tables que j'utilise:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE TABLE `equipmt_region` (
`equipement` varchar(15) NOT NULL,
`region` varchar(4) NOT NULL,
UNIQUE KEY `equipement` (`equipement`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `mailrse` (
`site` varchar(10) NOT NULL,
`parent` varchar(10) NOT NULL,
`Auteur` varchar(20) NOT NULL,
`Type` text NOT NULL,
`date` varchar(20) NOT NULL,
`Commentaire` text NOT NULL,
`Region` varchar(20) NOT NULL,
`Agence` varchar(20) NOT NULL,
`motif` text NOT NULL,
`num_evt` varchar(20) NOT NULL,
KEY `site` (`site`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; |
Voilà mon code PHP:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| $fichier = fopen("monFichier.CSV","r");
//tant qu'on est pas a la fin du fichier :
while (!feof($fichier))
{
/* variable pour avoir la taille de ligne */
$tailleLigne = 0;
// On recupere toute la ligne
$uneLigne = fgets($fichier);
$tailleLigne = strlen($uneLigne);
$uneLigne = substr($uneLigne,1,$tailleLigne-4);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un '","')
$tableauValeurs = explode(";", $uneLigne);
$eXtractAgenceSQL= mysql_query('SELECT equipmt_region.region FROM equipmt_region, mailrse
WHERE mailrse.site=equipmt_region.equipement
OR mailrse.parent=equipmt_region.equipement');
$eXtractAgence=mysql_fetch_row($eXtractAgenceSQL);
// On crée la requete pour inserer les donner (ici il y a 5 champs donc de [0] a [4])
if($tableauValeurs[0]!=""){
mysql_query("INSERT INTO mailrse (site,parent,Auteur,Type,date,Commentaire,Region,Agence,motif,num_evt)
VALUES (\"$tableauValeurs[4]\",\"$tableauValeurs[6]\",\"$tableauValeurs[11]\",\"$tableauValeurs[1]\",\"$tableauValeurs[9]\",
\"$tableauValeurs[12]\",\"$tableauValeurs[7]\",\"$eXtractAgence[0]\",\"$tableauValeurs[13]\",\"$tableauValeurs[0]\")");
}
} |
Le problème que je rencontre actuellement c'est que le champs "mailrse.Agence" est rempli n'importe comment.
Exemple:
Code:
1 2
| INSERT INTO `mailrse` (`site`, `parent`, `Auteur`, `Type`, `date`, `Commentaire`, `Region`, `Agence`, `motif`, `num_evt`) VALUES
('C20195B', 'S20195', 'toto', 'Coupure, '22/01/2010 09:51', '1025250', '', 'IDF', '', 'VT00001892'); |
Alors que dans la table "equipmt_region", S20195 a pour agence MED, c'est à dire:
Code:
INSERT INTO `equipmt_region` (`equipement`, `region`) VALUES ('S20195', 'MED');
En gros, le résultat de la requête doit donner ça :
Code:
('C20195B', 'S20195', 'toto', 'Coupure, '22/01/2010 09:51', '1025250', '', 'MED', '', 'VT00001892');
et pas ça:
Code:
('C20195B', 'S20195', 'toto', 'Coupure, '22/01/2010 09:51', '1025250', '', 'IDF', '', 'VT00001892');
Merci de votre aide.