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
d'Orlé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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ftc
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"; } } [SNIP]
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..
As-tu vérifier qu'aucune de tes lignes ne faisaient pas plus de 4096 octets ?
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";
}
}
[SNIP]
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..
As-tu vérifier qu'aucune de tes lignes ne faisaient pas plus de 4096
octets ?
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"; } } [SNIP]
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..
As-tu vérifier qu'aucune de tes lignes ne faisaient pas plus de 4096 octets ?
Jerome
antoine wrote:
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..
Les lignes zappées ne contiennent-elles pas un ' ? Dans ce cas, il faut le backslashé avant de faire la requète.
-- Jérôme
antoine wrote:
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..
Les lignes zappées ne contiennent-elles pas un ' ?
Dans ce cas, il faut le backslashé avant de faire la requète.
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..
Les lignes zappées ne contiennent-elles pas un ' ? Dans ce cas, il faut le backslashé avant de faire la requète.