Importer un fichier texte dans une base de données mysql

nguim Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
Onitz Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous, je suis content de rejoindre ce forum car il m'a beaucoup instruis, Merci à tous.

Je suis débutant en PHP et j'ai un problème dans ce langage qui est le suivant: dans mon projet donc je suis en train de coder en PHP, j'ai un fichier texte que je dois lire chaque ligne contenant 6 mots chacune, et stocker ces 6 mots respectivement dans 6 colonnes d'une table de ma Base de Données (MySQL). Ceci pour toutes les lignes (plus de 100000 lignes). Voici la structure de chacune des lignes:

IMSI MEID ESN1 PUK1 AKY MDN

exemple:

12333 435352 5626G2 Y222YH2 67272 6222HB2
TZV55 TZHZHH 637388 73JHHBD G53U2 289333B
36HHB HHJ7EJ3 3JJ3JKK 3U3II2IO 22U22 HJDDNDJ

j'usqu'à plus de dix milles lignes

Il faut que je le charge dans une table (nommée: coordab) de ma BD (nommée: gestnum), structure de la table: colonne 1 -> IM, 2 -> MEID, 3 -> ESN1, 4 -> PUK1, 5 -> AKY, 6 -> MDN



Voici mon code:


 <?php
 
mysql_connect('localhost','root','');
mysql_select_db('gestnum');
 
//on vide la table coordab avant
mysql_query("TRUNCATE TABLE coordab");
 
//On ouvre le fichier en question (en lecture seule)
$handle = fopen("fichab.txt", "r");
 
//on parcours tout le fichier (en faisant croire qu'il s'agit d'un csv pour faciliter le traitement)
while ($data = fgetcsv($handle, 1000, " ")) {
 
mysql_query("INSERT INTO coordab (IMSI, MEID, ESN1, PUK1, AKY, MDN) 
 	           VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','".$data[5]."')");
}
//On ferme le fichier
fclose($handle);
?>



Il fait le travail mais m'affiche l'erreur suivante:




 
 
( ! ) Notice: Undefined offset: 2 in C:\wamp\www\etudephp\chargerbd.php on line 16
Call Stack
#	Time	Memory	Function	Location
1	0.0007	250624	{main}( )	..\chargerbd.php:0
 
( ! ) Notice: Undefined offset: 3 in C:\wamp\www\etudephp\chargerbd.php on line 16
Call Stack
#	Time	Memory	Function	Location
1	0.0007	250624	{main}( )	..\chargerbd.php:0
 
( ! ) Notice: Undefined offset: 4 in C:\wamp\www\etudephp\chargerbd.php on line 16
Call Stack
#	Time	Memory	Function	Location
1	0.0007	250624	{main}( )	..\chargerbd.php:0
 
( ! ) Notice: Undefined offset: 5 in C:\wamp\www\etudephp\chargerbd.php on line 16
Call Stack
#	Time	Memory	Function	Location
1	0.0007	250624	{main}( )	..\chargerbd.php:0






S'il vous plait aidez moi je suis bloqué.



A voir également:

1 réponse

Onitz Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour!

<?php
 
mysql_connect('localhost','root','');
mysql_select_db('gestnum');
 
//on vide la table coordab avant
mysql_query("TRUNCATE TABLE coordab");
 
//On ouvre le fichier en question (en lecture seule)
$handle = fopen("fichab.txt", "r");
$data = fgetcsv($handle, 1000, " ")
//tu crée une boucle pour que l'action s'execute pour chaque ligne de ton fichier
foreach($data as $ligne) {
//tu fait de la ligne en cour un tableau
 $tabtemp=explode(" ",$ligne);

mysql_query("INSERT INTO coordab (IMSI, MEID, ESN1, PUK1, AKY, MDN) 
 	           VALUES ('".$tabtemp[0]."','".$tabtemp[1]."','".$tabtemp[2]."','".$tabtemp[3]."','".$tabtemp[4]."','".$tabtemp[5]."')");
}
//On ferme le fichier
fclose($handle);
?>


Je croit que cette solution devrais fonctionner.
0