Je suis confronté à un problème sur lequel je n'arrvie pas à m'en sortir
J'importe des données depuis un fichier csv vers une base de données.
Chaque ligne correspond à une alarme sur une machine de tri.
Je ne peux pas changer la structure du fichier (remplacer le , par ; ou autre bidouille du genre), je peux seulement supprimer des lignes, notamment les 4 premières qui sont les titres et qui ne m'intéressent pas.
Soit, là n'est pas le souci principal.
Chaque ligne est structurée de cette façon :
Unite trieur,ID Alarme,Heure debut,Heure fin,SH01-IUH01,SH01 Injection Colis trop large,29/03/2016 21:40:25,29/03/2016 21:40:48
Je fais un while comme ceci
Code : Tout sélectionner
while (($objArr = fgetcsv($objCSV, 1000, ",", "\"")) !== FALSE) Code : Tout sélectionner
$objArr[4]Code : Tout sélectionner
$inj_nameNous avons 14 équipements donc 14 noms différents, mais des centaines d'alarmes possibles.
Le souci c'est que dès lors qu'un nom d’équipement a été inséré dans la base mySQL , les alarmes suivantes du même équipement ne sont pas insérés.
Pourtant, si dans le while je liste chaque ligne (les echo), toutes les alarmes apparaissent.
Voici la partie pertinente de mon code php :
Code : Tout sélectionner
$objCSV = fopen("import/".$_FILES["fileCSV"]["name"], "r");
$i = 1;
echo "<table border=1>";
while (($objArr = fgetcsv($objCSV, 1000, ",", "\"")) !== FALSE)
{
$inj_name = $objArr[4];
$inj_dft = $objArr[5];
$inj_debut = $objArr[6];
echo "<tr><td>";
echo $i."</td><td>";
echo $inj_name."</td><td>";
echo $inj_dft."</td><td>";
echo $inj_debut."</td><td>";
echo $inj_fin."</td></tr>";
$sql = "INSERT INTO inj_list (inj_i, inj_name, inj_dft,inj_debut, inj_fin)
VALUES ('$i','$inj_name','$inj_dft','$inj_debut','$inj_fin')";
$sql = mysql_query($sql);
$i = $i+1;
}
fclose($objCSV);
echo "</table>";Je ne vois pas à quel endroit je fais erreur, d'autant plus que c'est du code que j'ai déjà utilisé pour un autre projet, et qui ne m'a pas posé de problème...
Merci pour votre aide et désolé pour le pavé lol
Couin