importer fichier text dans mysql

Eléphant du PHP | 101 Messages

14 oct. 2005, 13:42

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...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 oct. 2005, 13:46

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 101 Messages

14 oct. 2005, 14:05

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...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 oct. 2005, 14:09

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

14 oct. 2005, 17:12

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?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 oct. 2005, 17:17

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

14 oct. 2005, 19:38

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?

Mammouth du PHP | 19672 Messages

14 oct. 2005, 20:00

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 oct. 2005, 21:38

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

14 oct. 2005, 23:09

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?

Eléphant du PHP | 101 Messages

16 oct. 2005, 18:42

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)

iGwen
Invité n'ayant pas de compte PHPfrance

30 oct. 2005, 13:28

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)

iGwen
Invité n'ayant pas de compte PHPfrance

30 oct. 2005, 13:30

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