Php/mysql

Résolu
cs_seybou Messages postés 3 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 octobre 2009 - 10 sept. 2009 à 13:44
cs_seybou Messages postés 3 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 octobre 2009 - 14 sept. 2009 à 18:17
Bonjour,
j'ai besoin de l'aide pour faire telecharger des fichiers binaires sur un serveur bien donné, ensuite les traduire en txt,les concatener par groupe pour faire u seul fichier pour chaque groupe, ensuite importer ces fichiers dans Mysql en creant une table,dans une base dejà créee, ayant des champs comme les noms figurant dans la ligne (BTS_INDEX LAPD_TYPE LAPD_NUMBER L1_1 L1_12 L1_15 L1_16 L1_17 L1_18 L1_2 L1_5 L1_6.

Le format du fichier binaire est le suivant:

BSS release : 9
Name of BSC : AGA
Type of Measurement : RT07_LAPD Measurements
Measurement begin date and time : 2009-07-17 03:00
Measurement end date and time : 2009-07-17 04:00
Input file name : /metrica/npa/spool/bss/obsynt/B9/TYPE_7-#-6-#-omcniger-#-17Jul2009-#-03:00-#-04:00-#-I-#-S.lif
Output file name : /al/var/share/AFTR/APME/OBSYNT/AGA/20090717/R00700004.198


BTS_INDEX LAPD_TYPE LAPD_NUMBER L1_1 L1_12 L1_15 L1_16 L1_17 L1_18 L1_2 L1_5 L1_6
1 44 1 374 0 0 0 0 0 187 0 0
3 43 9 1789 0 0 0 0 0 1175 0 0
3 43 8 1153 0 0 0 0 0 615 0 0
3 43 1 3280 0 0 0 0 0 2569 0 0
3 43 2 31 0 0 0 0 0 64 0 0
3 42 1 0 0 0 0 0 0 0 0 0
5 43 5 40 0 0 0 0 0 64 0 0
3 43 7 287 0 0 0 0 0 281 0 0
5 43 1 653 0 0 0 0 1 142 0 0
5 43 2 50 0 0 0 0 0 72 0 0
5 42 1 28 0 0 0 0 0 11 0 0
3 43 3 66 0 0 0 0 0 95 0 0
3 43 5 67 0 0 0 0 0 82 0 0
5 43 3 679 0 0 0 0 2 165 0 0
5 43 4 672 0 0 0 0 2 159 0 0
3 43 4 100 0 0 0 0 0 124 0 0
3 43 6 45 0 0 0 0 0 76 0 0
6 43 1 682 0 0 0 0 2 168 0 0
6 43 3 40 0 0 0 0 0 64 0 0
6 43 2 1330 0 0 0 0 1 761 0 0
6 43 4 40 0 0 0 0 0 64 0 0
6 42 1 28 0 0 0 0 0 11 0 0
6 43 5 40 0 0 0 0 0 64 0 0
6 43 6 565 0 0 0 0 0 64 0 0
2 43 1 5855 0 0 0 0 3 4953 0 0
2 43 2 1346 0 0 0 0 0 1296 0 0
2 42 1 0 0 0 0 0 0 0 0 0
2 43 3 412 0 0 0 0 0 412 0 0
2 43 4 1097 0 0 0 0 0 1029 0 0
2 43 5 6135 0 0 0 0 0 5568 0 0
2 43 9 4032 0 0 0 0 0 3749 0 0
2 43 7 10064 0 0 0 0 0 9003 0 0
2 43 8 1698 0 0 0 0 0 1586 0 0
2 43 6 11578 0 0 0 0 1 10222 0 0
2 43 12 557 0 0 0 0 0 540 0 0
1 43 1 5355 0 0 0 0 0 4472 0 0
1 43 2 781 0 0 0 0 0 771 0 0
1 42 1 0 0 0 0 0 0 0 0 0
1 43 4 12172 0 0 0 0 0 10817 0 0
1 43 5 2904 0 0 0 0 0 2692 0 0
1 43 7 7041 0 0 0 0 3 6131 0 0
1 43 8 1158 0 0 0 0 0 1131 0 0
1 43 9 792 0 0 0 0 0 757 0 0
9 43 1 35 0 0 0 0 0 67 0 0
9 43 2 292 0 0 0 0 0 289 0 0
9 42 1 0 0 0 0 0 0 0 0 0
9 43 3 55 0 0 0 0 0 85 0 0
9 43 4 2127 0 0 0 0 0 1482 0 0
9 43 5 2659 0 0 0 0 0 1980 0 0
9 43 6 0 0 0 0 0 0 0 0 0
9 43 7 192 0 0 0 0 0 207 0 0
9 43 8 160 0 0 0 0 0 179 0 0
9 43 9 6747 0 0 0 0 2 5826 0 0
9 43 10 52 0 0 0 0 0 82 0 0
9 43 11 831 0 0 0 0 0 757 0 0
9 43 12 473 0 0 0 0 0 457 0 0
1 44 2 0 0 0 0 0 0 0 0 0
8 43 1 88 4 0 0 0 0 109 0 0
8 43 2 149 4 0 0 0 0 158 0 0
8 42 1 35 4 0 0 0 0 13 0 0
8 43 3 1662 5 0 0 0 1 1042 0 0
8 43 4 373 5 0 0 0 0 390 0 0
8 43 5 632 11 0 0 0 0 632 0 0
8 43 6 2768 11 0 0 0 2 2131 0 0
8 43 7 0 4 0 0 0 0 0 0 0
8 43 8 355 4 0 0 0 0 323 0 0
8 43 9 5015 32 0 0 0 1 4089 0 0
8 43 10 0 32 0 0 0 0 0 0 0
8 43 11 0 6 0 0 0 0 0 0 0
8 43 12 452 6 0 0 0 0 433 0 0

2 réponses

Bemale Messages postés 24 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 11 septembre 2009
10 sept. 2009 à 18:37
Un truc comme ça ?
Sachant que le fichier data.csv ne contient que les entêtes de champs et les données comme suit
BTS_INDEX LAPD_TYPE LAPD_NUMBER L1_1 L1_12 L1_15 L1_16 L1_17 L1_18 L1_2 L1_5 L1_6
1 44 1 374 0 0 0 0 0 187 0 0
3 43 9 1789 0 0 0 0 0 1175 0 0
and so on...
$file = fopen('data.csv','r');
$table_name = 'table_test';

$entete = fgetcsv($file,1024,' ');

if (!($connex = mysql_connect('127.0.0.1','root','')))
{
die ("ERREUR : la connexion à la BDD a échouée !");	
}

mysql_select_db('demo',$connex);
$creat_table = 'CREATE TABLE '.$table_name.' (';
$list_champ = '';
foreach ($entete as $nom_champ) 
{
 $list_champ .= '`'.$nom_champ.'` int(12) unsigned NOT NULL default \'0\',
 ';
}
//Suppression de la dernière ,
$creat_table .= substr($list_champ,0,strrpos($list_champ,','));
$creat_table .= ') ENGINE=MyISAM DEFAULT CHARSET=latin1;
' ;

//On détruit la table si elle existe
mysql_query('DROP TABLE  IF EXISTS '.$table_name.';',$connex);
mysql_query($creat_table,$connex);

while ($ligne = fgetcsv($file,1024,' '))
{
$query = 'INSERT INTO '.$table_name. ' ('.implode(',',$entete).') VALUES ('.implode(',',$ligne).')';
mysql_query($query,$connex);
}
fclose($file);
mysql_close($connex);


NDLR : peu ou pas de commentaires enfin ça va il n'y a pas de rtfm (read the f*cking manual) et pas de gestion d'erreur.
3
cs_seybou Messages postés 3 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 octobre 2009
14 sept. 2009 à 18:17
Bonsoir Bemale,
Je suis tres content de ta reponse, je vais travailler decu et te faire savoir si c'est bon.
Merci encore.
0
Rejoignez-nous