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 -
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:
Il fait le travail mais m'affiche l'erreur suivante:
S'il vous plait aidez moi je suis bloqué.
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:
- Importer un fichier texte dans une base de données mysql
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
Bonjour!
Je croit que cette solution devrais fonctionner.
<?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.