j'essaye "en vain" de mettre à jour un BD mysql avec un fichier csv en utilisant la function fgetcsv
quand je fais :
while ($data = fgetcsv ($fichier, 4096, ";" )) { $num = count ($data); print "<p> $num champs dans la ligne $row: <br>\n"; $row++; for ($c=0; $c < $num; $c++) { print $data[$c] . "<br>\n"; } }
toutes les lignes de mon fichier(508).csv s'affichent correctement avec pour chacune les 10 champs du style :
10 champs dans la ligne 114: 114 ANGLAISE Comédie 12 2001 France 2h03 Eric ROHMER Jean-Claude DREYFUS, Lucy RUSSELL, Françoise LARTHOURET Sous la Révolution Française, le cousin du roi de France, duc dOrléans vit une relation avec Grace Elliott, une aristocrate écossaise. La jeune femme, fervente adepte du système monarchique, ne parvient pas à concilier ses sentiments pour le duc avec les choix politiques de celui-ci, qui a voté pour la mort du roi.
j'essaye de faire la même chose en modifiant la ligne print par un insert dans la base, c'est à dire :
while ($data = fgetcsv ($fichier, 4096, ";" )) { $num = count ($data); print "<p> $num champs dans la ligne $row: <br>\n"; $row++; for ($c=0; $c < $num; $c++) { $query = "insert into $table VALUES('$data[$c]')" ; $ok = mysql_query($query); } }
les insertions se font bien jusqu'au numéro 508 sauf que je n'ai en tout que 366 enregistrements car des lignes sont zappées.. et en essayant de trouver une explication : pourquoi telle ou telle ligne n'es tpas prise en compte je ne vois aucune raison (les contenus de champs sont exactement semblables à celle prises en compte ..) et ces mêmes lignes zappées apparaissent pourtant quand je fais le print - elles sont donc bien vues et interprétées par fgetcsv..
je suis preneur de toutes idées .. refléxions .. cela fais longtemps que je cherche
Marsh Posté le 14-04-2005 à 19:33:08
bonjour,
j'essaye "en vain" de mettre à jour un BD mysql avec un fichier csv
en utilisant la function fgetcsv
quand je fais :
while ($data = fgetcsv ($fichier, 4096, ";" )) {
$num = count ($data);
print "<p> $num champs dans la ligne $row: <br>\n";
$row++;
for ($c=0; $c < $num; $c++) {
print $data[$c] . "<br>\n";
}
}
toutes les lignes de mon fichier(508).csv s'affichent correctement avec pour chacune les 10 champs du style :
10 champs dans la ligne 114:
114
ANGLAISE
Comédie
12
2001
France
2h03
Eric ROHMER
Jean-Claude DREYFUS, Lucy RUSSELL, Françoise LARTHOURET
Sous la Révolution Française, le cousin du roi de France, duc dOrléans vit une relation avec Grace Elliott, une aristocrate écossaise. La jeune femme, fervente adepte du système monarchique, ne parvient pas à concilier ses sentiments pour le duc avec les choix politiques de celui-ci, qui a voté pour la mort du roi.
j'essaye de faire la même chose en modifiant la ligne print par un insert dans la base, c'est à dire :
while ($data = fgetcsv ($fichier, 4096, ";" )) {
$num = count ($data);
print "<p> $num champs dans la ligne $row: <br>\n";
$row++;
for ($c=0; $c < $num; $c++) {
$query = "insert into $table VALUES('$data[$c]')" ;
$ok = mysql_query($query);
}
}
les insertions se font bien jusqu'au numéro 508 sauf que je n'ai en tout que 366 enregistrements car des lignes sont zappées.. et en essayant de trouver une explication : pourquoi telle ou telle ligne n'es tpas prise en compte je ne vois aucune raison (les contenus de champs sont exactement semblables à celle prises en compte ..) et ces mêmes lignes zappées apparaissent pourtant quand je fais le print - elles sont donc bien vues et interprétées par fgetcsv..
je suis preneur de toutes idées .. refléxions .. cela fais longtemps que je cherche
merci
joshua