Page 1 sur 1
Inserer des milliers de données texte
Posté : 22 févr. 2010, 19:46
par meteo71
Bonsoir,
Je dispose d'un fichier texte de 19664 lignes. Chaque ligne se composent de 11 données séparées par une virgule comme l'exemple ci-dessous (ce sont des données climatique) :
125,0,70,0,98,0,0,0,0,25,0
Je souhaite insérer ces données dans une table mais je ne me vois pas le faire manuellement,d'autant que j'ai 3 fichiers comme ça !!
Ma question est simple, commet peut-on faire pour insérer automatiquement ces données dans une table.
Merci de votre aide
Re: Inserer des milliers de données texte
Posté : 22 févr. 2010, 20:14
par zeus
Re: Inserer des milliers de données texte
Posté : 22 févr. 2010, 20:25
par AB
Tu l'as déjà créée ta table, c'est quoi sa structure ?
Sinon sur le principe oui c'est possible.
On peux s'y prendre comme ceci :
Avec la fonction file() de php tu récupères toutes les lignes de ton fichier sous forme d'un tableau. Puis tu fais un insert en listant ton tableau.
Bon je viens de voir le message de Zeus en postant. Tu pourras avantageusement utiliser sa méthode avec la structure de tes données.
Re: Inserer des milliers de données texte
Posté : 22 févr. 2010, 22:41
par meteo71
C'est génial cette fonction, je ne connaissais pas du tout !!
Je vais tester ça demain et je vous tiendrais au courant du résultat. A priori c'est tellement simple à faire que cela ne devrait pas poser de problème. Croisons les doigts.
Merci à AB et Zeus !
Re: Inserer des milliers de données texte
Posté : 23 févr. 2010, 10:36
par meteo71
Bien évidemment, cela ne marche pas. Lorsque je tape directement la commande, mysql me répond ça : Access denied for user
J'ai essayé avec le chemin absolu du fichier, c'est pareil. C'est étonnant car je suis bien connecté sous phpmyadmin.
je passe maintenant directement par phpmyadmin qui a cette fonction 'DATA INFILE (je suis tombé dessus par hasard ce matin) dans la rubrique SQL
J'ai d'abord essayé avec mon fichier texte que j'ai ensuite transformé en un fichier csv.
Je complète les différentes champs puis j'exécute mais il n'y a que la première ligne qui s'insère dans la table, que ce soit à partir de mon fichier texte ou du .csv La première ligne est parfaitement insérée.
Je ne sais pas trop si le problème vient de mon fichier txt ou csv (mais dans ce cas comment le modifier pour que ça fonctionne.) ou de phpmyadmin.
Dans bloc note, menu format j'ai coché "retour automatique à la ligne" et maintenant il m'insère les 2 premières lignes mais pas plus. J'ai aussi essayé avec un fichier de quelques lignes, pas de changement
Merci de m'aider.
Re: Inserer des milliers de données texte
Posté : 23 févr. 2010, 16:14
par meteo71
Ca fontionne, cela venait d'un champ ID de ma table qui refusait de s'incrémenter.
Merci