Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/07/2007, 16h57   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Par défaut Découpage d'un fichier .txt puis insertion dans base mysql

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 :
1
2
3
87215070958850783  6810000003463                                         -C01          E       00122006 1412200619155701122006TT
87215070958850783  6810000005897                                         +C01          E       00122006 1412200619165901122006TT
87215070958850783  6810000005914                                         -C01          E       00122006 1412200619173801122006TT
Je souhaite pouvoir découper chaque ligne en plusieurs morceaux (identique/ de même longueur pour chaque ligne) puis insérer chaque découpe dans des colonnes différentes dans une table mysql...

Est ce que quelqu'un aurait une idée de comment faire....?

Merci d'avance pour votre aide

Laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 16h59   #2
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 17h08   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
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
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 17h13   #4
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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 :
1
2
3
4
 
$variable1 = substr($ligne,0,19); (si je me suis pas trompé en comptant)
$variable2 = substr($ligne,20,54);
etc...
où tu auras substr(variable, début, longueur)

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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 17h17   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Citation:
Envoyé par jbrasselet
Tu auras alors toutes tes variables. Le mieux est ensuite d'utiliser la fonction trim dessus afin de supprimer les espaces superflus.
Je ne connais pas cette fonction... Je vais regarder ce soir chez moi...
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 09h55   #6
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Bon problème toujours pas résolu

voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
 
<?php
 
switch($_POST['action']) {
   case "ajouter":  
  $serveur = "localhost";
  $user = "root";
  $pwd = "";
  $bdd = "cartes";
 
	mysql_connect($serveur, $user, $pwd) or die('Impossible de se connecter au serveur');
	mysql_select_db($bdd) or die('Impossible de sélectionner la base de données');
 
	$fichier=$_FILES['fichier']['name'];
	move_uploaded_file($_FILES['fichier']['tmp_name'],"../cartes/test/".$fichier);
 
	$fp = fopen('../cartes/test/.$fichier','r'); //lecture du fichier
	while (!feof($fp)){ //on parcourt toutes les lignes
		$ligne.= fgets($fp); // lecture du contenu de la ligne
		$carte=substr($ligne,7,3);
		$matricule=substr($ligne,10,8); 
		$infos=substr($ligne,18,69);
		$monetaire=substr($ligne,88,1);
		$dateTraitement=substr($ligne,96,8);
		$dateSaisie=substr($ligne,105,8);
		$heureSaisie=substr($ligne,113,6);
		$dateEffet=substr($ligne,119,8);
		$tt=substr($ligne,127,2);
		$result=mysql_query('INSERT INTO carte VALUES(\'$pac\',\'$carte\',\'$matricule\',\'$infos\',\'$monetaire\',\'$dateTraitement\',\'$dateSaisie\',\'$heureSaisie\',\'$dateEffet\',\'$tt\')'); 
	}
	fclose($fp);
	mysql_close($serveur, $user, $pwd);
	break;
	default: 
	?>
<html>
<body>
<font face="verdana">
<form name='form' method='post' action='' enctype='multipart/form-data'>
    <table border='0' cellspacing='0' cellpadding='3' align="center">
    <tr>
    <td><font face="verdana" size=2><center>Fichier .txt à charger dans la base de donnée :</td> 
    <td> <input type="file" name="fichier"></center></font> </td> 
    </tr><br><br>
    <tr>
    <td></td>  
    <td> <input type="submit" name="submit" value="Charger"> </td> 
    </tr>
	<tr><td>
    <input type="hidden" name="action" value="ajouter"> </td></tr>
 	<p></p><font face="verdana" size=2><center>
	<a href = 'http://localhost/cartes/Accueil.php' align=center>Retour sur la page d'accueil</a> </center></font>  </table>
 
</form> 
</font>
</body> 
</html>
<?php } ?>
En vous remerciant de votre aide...

Laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 09h58   #7
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
Tu as quoi comme erreur?
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h16   #8
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Voila ce qu'il me met comme erreur :

Citation:
Warning: fopen(../cartes/test/.$fichier) [function.fopen]: failed to open stream: No such file or directory in C:\wamp\www\cartes\importTXTbdd_test.php on line 16

Warning: feof(): supplied argument is not a valid stream resource in C:\wamp\www\cartes\importTXTbdd_test.php on line 17

Warning: fgets(): supplied argument is not a valid stream resource in C:\wamp\www\cartes\importTXTbdd_test.php on line 18
Il copie bien le fichier vers le dossier mais j'ai (encore et toujours) une erreur avec l'ouverture de fichier, j'ai essayer un peu dans tous les sens et aussi plusieurs methodes d'ouverture de fichiers mais rien ne marche...
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h30   #9
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Une erreur sur cette ligne :
Code :
$fp = fopen('../cartes/RE/test/.$fichier','r');
A remplacer par :
Code :
$fp = fopen('../cartes/RE/test/' . $fichier,'r');
Et ici :
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\')");
ou bien tu fais des concaténations :
Code :
1
2
Exemple :
$result=mysql_query('INSERT INTO carte VALUES(\'' . $pac . '\',...)');
jeca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h40   #10
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Merci, j'ai fais les modifs , voici le nouveau code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
<?php
 
switch($_POST['action']) {
   case "ajouter":  
  $serveur = "localhost";
  $user = "root";
  $pwd = "";
  $bdd = "cartes";
 
	mysql_connect($serveur, $user, $pwd) or die('Impossible de se connecter au serveur');
	mysql_select_db($bdd) or die('Impossible de sélectionner la base de données');
 
	$fichier=$_FILES['fichier']['name'];
	move_uploaded_file($_FILES['fichier']['tmp_name'],"../cartes/test/".$fichier);
 
	$fp = fopen('../cartes/test/'.$fichier,'r'); //lecture du fichier
	while (!feof($fp)){ //on parcourt toutes les lignes
		$ligne= fgets($fp); // lecture du contenu de la ligne
		$carte=substr($ligne,7,3);
		$matricule=substr($ligne,10,8); 
		$infos=substr($ligne,18,69);
		$monetaire=substr($ligne,88,1);
		$dateTraitement=substr($ligne,96,8);
		$dateSaisie=substr($ligne,105,8);
		$heureSaisie=substr($ligne,113,6);
		$dateEffet=substr($ligne,119,8);
		$tt=substr($ligne,127,2);
		$result=mysql_query("INSERT INTO carte VALUES(\'$pac\',\'$carte\',\'$matricule\',\'$infos\',\'$monetaire\',\'$dateTraitement\',\'$dateSaisie\',\'$heureSaisie\',\'$dateEffet\',\'$tt\')"); 
	}
	fclose($fp);
	mysql_close();
	break;
	default: 
	?>
<html>
<body>
<font face="verdana">
<form name='form' method='post' action='' enctype='multipart/form-data'>
    <table border='0' cellspacing='0' cellpadding='3' align="center">
    <tr>
    <td><font face="verdana" size=2><center>Fichier .txt à charger dans la base de donnée :</td> 
    <td> <input type="file" name="fichier"></center></font> </td> 
    </tr><br><br>
    <tr>
    <td></td>  
    <td> <input type="submit" name="submit" value="Charger"> </td> 
    </tr>
	<tr><td>
    <input type="hidden" name="action" value="ajouter"> </td></tr>
 	<p></p><font face="verdana" size=2><center>
	<a href = 'http://localhost/cartes/Accueil.php' align=center>Retour sur la page d'accueil</a> </center></font>  </table>
 
</form> 
</font>
</body> 
</html>
<?php } ?>
Il ne me met plus d'erreur (il m'affiche une page blanche avec dans l'url le nom de ma page .php d'import) mais il n'insere toujours pas dans la bdd mes chaines de caracteres....
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 15h45   #11
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Apres des modifs et tout pleins d'essais, voici mon nouveau code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
 
<?php
 
switch($_POST['action']) {
  case "ajouter":  
  $serveur = "localhost";
  $user = "root";
  $pwd = "";
  $bdd = "testcartes";
 
	mysql_connect($serveur, $user, $pwd) or die('Impossible de se connecter au serveur');
	mysql_select_db($bdd) or die('Impossible de sélectionner la base de données');
 
	$fichier=$_FILES['fichier']['name'];
	move_uploaded_file($_FILES['fichier']['tmp_name'],"../cartes/test/".$fichier);
 
	$fp = fopen('../cartes/test/'.$fichier,'r'); //lecture du fichier
	while (!feof($fp)){ //on parcourt toutes les lignes
		$ligne=fgets($fp); // lecture du contenu de la ligne
		$sqltest="INSERT INTO test (numero,carte) values ('$numero','$ligne')";
		$resql=mysql_query($sqltest);
	};
 
	$sql2=("select * from test");
	$resql2=mysql_query($sql2);
	$lignecarte='carte';	
 
	while($ligne=mysql_fetch_array($resql2)){
		$carte=substr($lignecarte,7,3);
		$matricule=substr($lignecarte,10,8); 
		$infos=substr($lignecarte,18,69);
		$monetaire=substr($lignecarte,88,1);
		$dateTraitement=substr($lignecarte,96,8);
		$dateSaisie=substr($lignecarte,105,8);
		$heureSaisie=substr($lignecarte,113,6);
		$dateEffet=substr($lignecarte,119,8);
		$tt=substr($lignecarte,127,2);
 
		echo"test";
 
		$result=mysql_query("INSERT INTO carte (numero,pac,carte,matricule,infos,monetaire,dateTraitement,dateSaisie,heureSaisie,dateEffet,tt) VALUES($numero,$pac,$carte,$matricule,$infos,$monetaire,$dateTraitement,$dateSaisie,$heureSaisie,$dateEffet,$tt)"); 
		};
	fclose($fp);
	mysql_close();
	break;
	default: 
	?>
<html>
<body>
<font face="verdana">
<form name='form' method='post' action='' enctype='multipart/form-data'>
    <table border='0' cellspacing='0' cellpadding='3' align="center">
    <tr>
    <td><font face="verdana" size=2><center>Fichier .txt à charger dans la base de donnée :</td> 
    <td> <input type="file" name="fichier"></center></font> </td> 
    </tr><br><br>
    <tr>
    <td></td>  
    <td> <input type="submit" name="submit" value="Charger"> </td> 
    </tr>
	<tr><td>
    <input type="hidden" name="action" value="ajouter"> </td></tr>
 	<p></p><font face="verdana" size=2><center>
	<a href = 'http://localhost/cartes/Accueil.php' align=center>Retour sur la page d'accueil</a> </center></font>  </table>
 
</form> 
</font>
</body> 
</html>
<?php } ?>
Pour résumer le 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
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 15h47   #12
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h04   #13
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
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
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h09   #14
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h13   #15
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
CREATE TABLE pac (
  checke varchar(1),
  pac varchar(10),   
  client varchar(150),
  segment_origine varchar(2),
  portef varchar(2),  
  responsable_PortefeuilleDA varchar(75),
  RE varchar(75),
  Agence_Ch varchar(5), 
  Agence_Ch_BO varchar(2),  
  Agence_Ca varchar(5),
  Mod_zpp varchar(6),
  nb_bulletins varchar(6),
  PRIMARY KEY  (pac),
    KEY pac (pac))
  TYPE=MyISAM;
 
CREATE TABLE carte (
  numero int(100) NOT NULL auto_increment,
  pac varchar(10),   
  carte varchar(3),
  matricule varchar(8),
  infos varchar(40),
  monetaire varchar(1),
  orig varchar(1),
  dateTraitement varchar(8),
  dateSaisie varchar(8),
  heureSaisie varchar(8),
  dateEffet varchar(8),
  TT varchar(2),
  PRIMARY KEY  (numero),
    KEY numero (numero))
  TYPE=MyISAM;
 
  CREATE TABLE test (
  numero int(100) NOT NULL auto_increment,
  carte varchar(130),
  PRIMARY KEY  (numero),
    KEY numero (numero))
  TYPE=MyISAM;
Bout du code modifié :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
switch($_POST['action']) {
  case "ajouter":  
  $serveur = "localhost";
  $user = "root";
  $pwd = "";
  $bdd = "testcartes";
 
	mysql_connect($serveur, $user, $pwd) or die('Impossible de se connecter au serveur');
	mysql_select_db($bdd) or die('Impossible de sélectionner la base de données');
 
	$fichier=$_FILES['fichier']['name'];
	move_uploaded_file($_FILES['fichier']['tmp_name'],"../cartes/test/".$fichier);
 
	$fp = fopen('../cartes/test/'.$fichier,'r'); //lecture du fichier
	while (!feof($fp)){ //on parcourt toutes les lignes
		$ligne=fgets($fp); // lecture du contenu de la ligne
		$sqltest="INSERT INTO test (numero,carte) values ('$numero','$ligne')";
		$resql=mysql_query($sqltest);
	};
 
	$sql2=("select * from test");
	$resql2=mysql_query($sql2);
 
	while($ligne=mysql_fetch_array($resql2)){
		$carte=substr($ligne,7,3);
		$matricule=substr($ligne,10,8); 
		$infos=substr($ligne,18,69);
		$monetaire=substr($ligne,88,1);
		$dateTraitement=substr($ligne,96,8);
		$dateSaisie=substr($ligne,105,8);
		$heureSaisie=substr($ligne,113,6);
		$dateEffet=substr($ligne,119,8);
		$tt=substr($ligne,127,2);
 
		echo"test<br>";
 
		$result=mysql_query("INSERT INTO carte (numero,pac,carte,matricule,infos,monetaire,dateTraitement,dateSaisie,heureSaisie,dateEffet,tt) VALUES('$numero','$pac','$carte','$matricule','$infos','$monetaire','$dateTraitement','$dateSaisie','$heureSaisie','$dateEffet','$tt')"); 
		};
	fclose($fp);
	mysql_close();
	break;
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h31   #16
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h38   #17
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
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...
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h41   #18
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h51   #19
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
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)
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 16h56   #20
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
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.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h25.


 
 
 
 
Partenaires

Hébergement Web