Page 1 sur 1

PHPAdmn, : Warning: #1262 Row 4 was truncated;

Posté : 23 nov. 2018, 12:46
par marih
Bonjour à tous,
depuis longtemps je charge des tables avec PHPADMIN.
Ce matin j'ai récupéré le message:
Warning: #1262 Row 4 was truncated; it contained more data than there were input columns

PHPADMIN génère la commande :
LOAD DATA LOCAL INFILE '/home/vilespy/tmp/phpnlnEgv' INTO TABLE `ataindex` FIELDS TERMINATED BY '\t' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r'
le fichier (.txt) avec tabulateurs que je tente de transférer est composé de 3 colonnes de la forme suivante:
AASEN John (1890-1938)	55 1	\r
soit:
col 1: Nom (AASEN John (1890-1938))
col 2: valeur (55)
col 3 valeur (1)
col 4 fin de ligne (\r)
Quelqu'un peut-il m'aider
Merci beaucoup

Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

Posté : 24 nov. 2018, 15:05
par marih
Bonjour,
j'ai poursuivi mes tests pour essayer de comprendre...

J'ai procédé par élimination et sur 2000 entrées du fichier j'ai réduit à 50 lignes qu'il trouve toutes erronées !
Je ne vois vraiment pas pourquoi ! les tailles des zones sont grandes et il y a toujours \r à chaque fin de ligne.
J'ai aussi récupéré le message :
Warning: #1261 Row 51 doesn't contain data for all columns
Là PhpMyAdmin ne sait pas reconnaître que le fichier est terminé !

Personne ne voit ?
Merci d'avance

Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

Posté : 26 nov. 2018, 17:13
par Saian
Salut, j'imagine qu'à la ligne 4 (row 4), peut être 5 si le comptage commence à 0, tu dois avoir une tabulation dans une des valeurs ce qui "ajoute" une colonne de trop par rapport aux nombre de colonnes de la table.

Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

Posté : 27 nov. 2018, 19:06
par marih
Bonsoir Saian,
le pb c'est que je ne maîtrise rien, car j'utilise un fichier excel avec des tabulations comme séparateurs en format .txt.
Par ailleurs je ne comprends pas le message 1261 qui indique que la fin de fichier n'est pas reconnue, OR il n'y a rien qui définit la fin de fichier hors mis que les colonnes sont vides après la dernière ligne...
Qu'en penses-tu ?
merci de ton aide

Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

Posté : 28 nov. 2018, 12:10
par Saian
Pardon, j'avais oublié ton deuxième message. Dans celui ci le message d'erreur suggère que c'est le contraire de l'autre problème : la ligne ne contient pas de données pour toutes les colonnes.
En effet si tu as une dernière vide, ça explique le message d'erreur. Si les lignes précédentes sont chargées dans la table alors peut importe, sinon supprime la.

Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

Posté : 30 nov. 2018, 10:34
par marih
    Hello,
    je ne comprends pas.
    je constitue un fichier .txt
    • dont les colonnes sont marquée (automatiquement) par des tabulations (\t).
      la fin de ligne par des (\r)
    c'est tout. Il n'y a pas de marque de fin de fichier, et après a dernière ligne de données il n'y a rien.
    Je ne peux rien faire d'autre.
    De plus j'utilise cette méthode depuis 15 ans sans problème !!!!
    J'ai posté la question aux ingénieurs système de mon hébergeur, mais depuis 5 jours pas de réponse !!!

    c'est le cas de dire : "trouver l'erreur !"
    Merci de bien vouloir te pencher sur cette question.
    Cordialement
    Bonne journée

    Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

    Posté : 30 nov. 2018, 11:17
    par Saian
    Salut marih, les messages d'erreurs me semblent assez clair. Tu as à priori des lignes où il y a plus de tabulations qu'il devrait y en avoir et tu as d'autres lignes où il y a moins de tabulations qu'il devrait y en avoir (le message est clair, tu dis avoir 50 lignes et comme par hasard tu as l'erreur sur la 51 qui est je suppose une ligne vide)...

    Essaies d'ouvrir ton fichier dans un éditeur permettant de contrôler les tabulations et tu verras vite où est le problème.
    Au pire tu peux faire un script php tout basique dans lequel tu parcours chaque ligne du fichier et pour chaque ligne tu fais un $cols = explode("\t", $line); echo count($cols); pour vérifier que tu as le bon nombre de colonnes. Tu trouveras vite les lignes problématiques et tu pourras peut être déterminé pourquoi il y a trop de tabulations sur ces lignes...

    Code : Tout sélectionner

    <?php $lines = explode("\n", file_get_contents('path/du/fichier')); $i = 0; foreach ($lines as $line) { $i++; $cols = explode("\t", $line); echo "Ligne $i, ".count($cols).' colonnes<br/>'; }

    Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

    Posté : 30 nov. 2018, 15:25
    par marih
    Bonjour Saian, un grand merci pour ton aide.
    Le résultat donne 2017 lignes:
    Ligne 1, 7 colonnes
    etc.
    Ligne 2016, 7 colonnes
    Ligne 2017, 1 colonnes
    alors qu'il n'y a que 4 colonnes en comptant la 4ème qui contient \r
    Ton programme affiche 2017 lignes avec du texte, alors qu'il y en que 2003 dans le fichier.

    J'ai par ailleurs refait le chargement en utilisant des fichiers des mois précédents qui ne posaient aucun problème. Ils donnent maintenant la même erreur...

    Sais-tu si j'ai un moyen de "voir" le fichier .txt avec ses tabulations ?
    J'ai quand même l'impression que cela vient de phpMyAdmin qui à mon sens interprète le fichier ? Qu'en pense-tu ?
    Encore merci
    Cordialement

    Re: PHPAdmn, : Warning: #1262 Row 4 was truncated;

    Posté : 30 nov. 2018, 15:59
    par marih
    Suite des tests:
    Quand on affiche le fichier EXCEL il fournit d'abord l'Assistant d'importation de texte, là toutes les données "semblent" à la queue le-leu sans séparateurs. Puis si on fait "suivant" on voit le fichier (correct), mais réparti en 6 colonnes, les deux dernières étant vides (au delà du \r) je pense que c'est sa façon de comprendre que c'est la fin de la ligne ?) et un dernière ligne avec 6 colonnes vides (je pense que c'est sa façon de comprendre que c'est la fin du fichier ?)
    J'en déduis que le système qui interprète ce fichier ne comprend pas ... la fin de chaque ligne et la fin du fichier...
    Cordialement