Quelqu'un pourrait-il m'aider à résoudre un problème d'insertion de données d'un fichier texte vers une table d'une base de donnée Mysql.
Voila le code :
et voila le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $host = "localhost"; $user = "root"; $pass = ""; $db = "al936ne36"; $connect = mysql_connect ($host, $user, $pass); mysql_select_db ($db, $connect) or die(mysql_error()); $fileName="vente.txt"; $tableName="biens"; function insertIntoTable ($fileName,$tableName,$connect) { $file = fopen( $fileName, 'r' ); $k = 0; while ( ! feof( $file ) ) { $k++; $line = fgets( $file, 5000 ); if ( strlen( $line ) > 1 ) { $requete = 'INSERT INTO '.$tableName.' VALUES ( \''.$line.'\' ) '; if ( ! mysql_query ( $requete, $connect ) ) echo 'Erreur Ligne '.$k.' : '.mysql_error().'<br>'.$requete.'<br>'; } else echo 'Ligne '.$k.' ignorée.<br>'; } echo '<p>Insertion du fichier '.$fileName.' terminé.</p><hr>'; fclose( $file ); } insertIntoTable ("vente.txt", "biens", $connect); ?>
Je joins le fichier texte avec quelques données à cette discussion.Erreur Ligne 1 : Column count doesn't match value count at row 1
INSERT INTO biens VALUES ( 'VAI10009;AI1;T;108000,00;LES TROIS PIERRES;0;0;0;0,00;1200;;0;0;;0;0;02.35.00;FIN ' )
Erreur Ligne 2 : Column count doesn't match value count at row 1
INSERT INTO biens VALUES ( 'VAI10010;AI1;T;142000,00;FONTAINE LA MALLET;0;0;0;0,00;440;;0;0;;0;0;02.35.21;FIN ' )
Erreur Ligne 3 : Column count doesn't match value count at row 1
INSERT INTO biens VALUES ( 'VAI10012;AI1;M;225000,00;ROUVILLE;6;4;100;35,00;798;SO;0;2;Aménagée;1;2;02.35.21;FIN' )
Insertion du fichier vente.txt terminé.
Il y a autant de données par ligne dans le fichier texte que de colonne dans la table. J'ai choisi le ; comme séparateur de champ car il y a des chiffres avec deux décimales séparés par une virgule dans les données à insérer.
Je suis débutant en PHP, alors soyez indulgent.
Merci d'avance pour votre aide ! ! !
Partager