Page 1 sur 1

importer fichier text dans mysql

Posté : 14 oct. 2005, 13:42
par fersayn
bonjour,

j'ai créer une base de donnée mysql qui comprend une table nomée recherche et qui compte 5 champs: id (autoincrément) - mots- date- url-decription.

j'aimerai savoir comment rédiger mon fichier text afin de pouvoir l'importer dans mysql sans copier-coller a chaque fois les données...

j'ai regardé les tutaux pas trouver??

Merci de votre aide...

Posté : 14 oct. 2005, 13:46
par zeus
En ce qui concerne les tutaux, mea culpa parce que ça fait 2 mois que je devrais en avoir posté 1 qui correspond à ce que tu cherches

Pour rédiger ton fichier texte, tu doit séparer tes champs par un séparateurs (; par exemple) et tes lignes par un autres séparateurs (retour à la ligne)

Ensuite, tu utilise l'instruction SQL LOAD DATA INFILE pour insérer les données depuis ton fichier texte vers ta base de données MySQL

description de LOAD DATA INFILE

Et pour m'excuser de ne pas avoir encore mis le tuto en lignes, je te suis jusqu'a ce que tu ais réussi

Posté : 14 oct. 2005, 14:05
par fersayn
ok je te suis pour le load data mais comment lui dire que tels parties est a mettre dans tel champs:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'documentaire.txt'
[REPLACE]
INTO TABLE recherche
?????????????????????????????????????

c'est la ou je beug???

[FIELDS
[TERMINATED BY '\t']
[[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\\' ]
]
[LINES
[STARTING BY '']
[TERMINATED BY '\n']
]
[IGNORE number LINES]
[(col_name,...)]

merci pour ton aide...

Posté : 14 oct. 2005, 14:09
par zeus
il faut que tu remplisse ton fichier dans l'ordre des champs de ta table

Code : Tout sélectionner

+-----------+ | ma_table | +-----------+ | id | | nom | |prenom | +-----------+
fichier

Code : Tout sélectionner

1;marc;lavoine 2;zazie;; 3;david;guetta

Posté : 14 oct. 2005, 17:12
par Invité
Dans mon fichier texte, j'ai deja des phrases avec des ;
dans mon champs descriptif: comment ca va réagir?

il n'y a pas moyen de séparer les champs par un autre opérateur tel que le ? ou ! par exemple?

Posté : 14 oct. 2005, 17:17
par zeus
Si, le ; n'était qu'un exemple. Il suffira que dans la commande LOAD DATA INFILE, tu mettes FIELDS TERMINATED BY 'monchar' où monchar est le caractère de séparation ; dans mon exemple, | par exemple

Sinon, l'attribut FIELDS ESCAPED BY 'monchar' te permet d'anihiler le caractère de séparation de champs. Un peu comme \ en php pour bloquer un " ou un ' sauf que là, comme pour FIELDS TERMINATED, tu peut mettre le caractères que tu veut, du moment qu'il n'est pas déjà utiliser dans un autre attribut de LOAD DATA INFILE

Posté : 14 oct. 2005, 19:38
par Invité
Je voulais savoir mon id est en auto increment, est- il utile de lui donner un numéro dans le fichier texte tout de meme?

Posté : 14 oct. 2005, 20:00
par Cyrano
De l'utilité d'une clé primaire auto-incrémentée

Il est bon de savoir que dans une table, la clé primaire n'est pas, et ne doit pas être un élément concernat l'affichage des données: la clé primaire sert aux manipulations des données afin de repérer une (ou plusieurs) ligne(s) précise(s). L'auto-incrémentation permet de ne pas avoir à se creuser le citron trop longtemps pour générer une clé unique, le SGBD s'en charge très bien et on a pas besoin de connaitre le numéro en dehors du code servant à la manipulation. Ainsi, lorsque tu voudras mettre à jour une ligne en particulier dans une table spécifique, il sera fort appréciable d'avoir un point de repère pour la trouver. La clé primaire sert à ça.

Posté : 14 oct. 2005, 21:38
par zeus
Je voulais savoir mon id est en auto increment, est- il utile de lui donner un numéro dans le fichier texte tout de meme?
Tu peut donner une valeur à un champ avec un auto-increment si tu le désire. Mais il faut savoir que si tu as 2 fois la même valeur, ça va tout planter ...

Comme le dit Cyrano, tu ne devrais pas avoir a toucher les id auto-increment.

Mais si tu pars d'une table vide, je n'en voit pas d'ojection

Posté : 14 oct. 2005, 23:09
par Invité
1<http://www.informationhospitaliere.com/ ... ion.htm<Un traitement précoce de la dégénérescence maculaire avec le macugen peut aider les patients à conserver leur vision.<07/10/05 - L'étude a montré que la détection et le traitement précoce de la dégénérescence maculaire avec le pegaptanib de sodium peut permettre aux patients AMD d'entretenir et, dans certains cas, de regagner la vision.<
2<http://www.informationhospitaliere.com/ ... tm<Nouveau type de batterie implantable.<06/10/05 - Un avantage critique de la nouvelle technologie est la durée de vie des batteries: les batteries organo-siliciums devraient durer une douzaine d'années.<

voici comment j'ai composé ma page texte...

je passe sous sql aprés avoir crée ma table et fais inserer à partir du fichier text...

le probleme est qu'il me prends que le premier sur 694 evec toutes les données et me comptent 774 enregistrements sans valeur?

Posté : 16 oct. 2005, 18:42
par fersayn
re,
losque j'impote mon fichier text avec une config:
id<nom<url<description

l'importation ne prend en compte qsue la premiere ligne et compte 774 ligne vide????
Alors qu'il y a 890 lignes dans le fichier

Comment résoudre ce probleme?

j'utilise la fonction automatique de mysql pour importer les données (dernier onglet au bas de la page)

c'est pourtant simple :D

Posté : 30 oct. 2005, 13:28
par iGwen
ton fichier texte DOIT être de cette forme:

Code : Tout sélectionner

"1","blablablabla","tototototototo ot ot ot oto" "2","lalalalala","prouttprout jfhsjks jjjj" "3",.........
ensuite avec quoi importe tu ce fichier?
- un script que tu as réalisé toi même? (j'en doute :? )
- la fonction d'import dans phpmyadmin (avec un formulaire te permettant de choisir le fichier et les différentes options)
- des lignes de commandes mysql? (je te déconseille ça, c'est incompréhensible et personnelement je n'ai jamais trouvé ou il fallait insérer ce genre de commendes)

Posté : 30 oct. 2005, 13:30
par iGwen
oups j'avais pas vu que tu utilisais phpmyadmin
donc dans les réglages:
-tu choisis ton fichier txt
-tu choisis , comme caractère de fin de champ et " " comme séparateur
- ensuite tu choisis \n

et tu valides et je crois qu'il n'y a rien d'autre à faire