|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Voila la situation : J'ai un fichier .txt (qui fait plus de 200Mo pour info) dont voici quelques lignes (c'est la même syntaxe tout le long du fichier et chaque ligne contient 128 caractères)
Code :
Est ce que quelqu'un aurait une idée de comment faire....? Merci d'avance pour votre aide Laeti |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
Tes colonnes semblent formattées avec une longueur précise
Si cette longueur reste la même quelque soit ton fichier tu peux utiliser la fonction subtr. Ensuite tu fais tes requêtes SQL pour insrére les données obtenues en base.
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Oui j'ai vu un peu cette fonction mais j'ai un peu de mal pour l'utiliser (je suis débutante dans le domaine)... d'ailleurs tu as oublié le "s" (subStr)... C'est pas spécifique à Oracle...? Parce que je ne l'utilise pas je me sers juste d'un serveur wamp5....
Je vais aussi avoir le problème pour qu'il lise le fichier .txt via php avec cette fonction [je sais comment extraire des données dans une chaine de caractère préciser avant (par exemple extraire d'un numero INSEE donné le code postale...) mais pour un fichier comment on fait...?avec des variables...?] Merci |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() |
Ce qu'il faut que tu fasses.
C'est déjà ouvrir ton fichier en PHP. Ensuite il faudra que tu parcoures les lignes Lorsque tu auras ta ligne dans une variable $ligne par exemple, tu pourras alors extraire tes infos avec un script du style: Code :
Tu auras alors toutes tes variables. Le mieux est ensuite d'utiliser la fonction trim dessus afin de supprimer les espaces superflus. Et là tu fais ta requête SQL permettant d'insérer les données en base.
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
||
|
|
00
|
|
|
#5 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Bon problème toujours pas résolu
voici mon code : Code :
Laeti |
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() |
Tu as quoi comme erreur?
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#8 | |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Voila ce qu'il me met comme erreur :
Citation:
|
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
Bonjour,
Une erreur sur cette ligne : Code :
$fp = fopen('../cartes/RE/test/.$fichier','r'); Code :
$fp = fopen('../cartes/RE/test/' . $fichier,'r'); le point est en trop : Pour que les variables soient interprètées dans la requête, celle-ci doit être en cadrées par des guillemets doubles : Code :
$result=mysql_query("INSERT INTO carte VALUES(\'$pac\',\'$carte\',\'$matricule\',\'$infos\',\'$monetaire\',\'$dateTraitement\',\'$dateSaisie\',\'$heureSaisie\',\'$dateEffet\',\'$tt\')"); Code :
|
||
|
|
00
|
|
|
#10 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Merci, j'ai fais les modifs , voici le nouveau code :
Code :
|
||
|
|
00
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Apres des modifs et tout pleins d'essais, voici mon nouveau code :
Code :
L'utilisateur importe le fichier texte, celui-ci est copié vers un dossier special, ensuite on insert une a une les lignes entieres du fichier .txt (dont la forme a été donné précédemment, fait 128 caracteres en tout normalement, mais qu'une fois inserer dans la base de donnée il m'enleve tout les espaces automatiquement => quelqu'un sait comment le forcer à les garder (c'est assez important pour la suite...)??) Une fois inseré dans la base de donnée sous une seule colonne, je souhaite "découper" chaque ligne et inserer chaque bout dans une colonne distincte d'une autre table de la meme base de donnée... Le probleme est : Quand je lance le code : il me copie bien le fichier dans le bon repertoire, il m'insere bien chaque ligne dans la table designé, mais c'est tout!! Je n'arrive pas à "decouper" les lignes comme je veux, je suis completement bloqué et je ne peux pas avancer dans mon projet sans ca... Merci de votre aide.... Laeti |
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() |
Comment ça tu n'arrives pas à découper tes lignes?
Quel est le souci exact? Tes substr ne marchent pas?
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
il rentre dans le while (quand je fais un echo "test" il me l'affiche) et quand je fais un echo $carte,$matricule,$infos par exemple il m'affiche ",," donc oui je suppose que mes substr ne fonctionne pas, et donc il ne m'insere rien dans ma table
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() |
tu fais un substr sur $lignecarte alors que tu lui as donné la valeur carte juste avant.
Il est normal qu'il ne trouve rien! Pourquoi cette affectation?
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#15 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
je remet tout avec $ligne et (meme avant modifs) maintenant il me met des lignes dans ma table carte (celle où je veux inserer les bout de caracteres decouper de ma chaine entiere) mais tout est vide!! il m'increment juste (au bon nombre de ligne) le numero...
voici le code de mes tables : Code :
Code :
|
||||
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() |
au lieu de faire un echo "test"; fais un echo $ligne voir si tu as bien quelque chose dans ta variable
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
Alors en faisant un echo "$ligne" dans le while apres les fonctions substr, il me met "Array" ... Je ne sais pas ce que ca signifie...
|
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() ![]() |
Cela veut dire que ta variable ligne est un tableau avec en première colonne ton premier champ de ta table test, en seconde colonne ton deuxième champ, etc.
Donc au temps pour moi, il faut faire un echo de $ligne['carte'] ce sera mieux
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 60 ![]() |
alors en faisant un echo $ligne['carte']; il m'affiche les 3 lignes contenues dans mon fichier .txt (qui est celui inseré dans la bdd test)
|
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() ![]() |
il faut donc que tu fasses tes substr sur $ligne['carte']
ça devrait résoudre ton problème je pense
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com