Salut a tous,
Je suis en train de developer une aplication qui importe des données contenues dans un fichier CSV dans une base de données MySQL mais j'obiten une erreur:
Column count doesn't match value count at row 1
Mon fichier CSV est separé par des ";" et j'ai 6 colones, le voici:
et voici mon fichier php, ce code php je l'ai recuperé ici dans le forum et d'après son createur il funcionait, je n'ai fait que très peu de changements:135/80R13TL;INTENSA;MJ 683;T;Ligeiros;27,10 €
145/80R13TL;INTENSA;MJ 683;T;Ligeiros;30,73 €
155/80R13TL;INTENSA;MJ 683;T;Ligeiros;31,46 €
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
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 <?php //Connection a la db include("../config.php"); ?> <html> <head> <title>Importação de dados na tabela</title> </head> <body> <h2>Importação de dados na tabela</h2> <?php switch($action) { /* LECTURE ET AJOUT DES DONNEES DANS LA TABLE */ case "ajouter": // On ouvre le fichier à importer en lecture seulement $fichier = $_FILES['fichier_u']['tmp_name']; if (file_exists($fichier)) $fp = fopen("$fichier", "r"); else { /* le fichier n'existe pas */ echo "O ficheiro não foi encontrado !<br>A importação foi cancelada."; exit(); } while (!feof($fp)) /* Et Hop on importe */ { /* Tant qu'on n'atteint pas la fin du fichier */ $ligne = fgets($fp,4096); /* On lit une ligne */ /* On récupère les champs séparés par ; dans liste*/ $liste = explode( ";",$ligne); /* On assigne les variables */ $val1 = $liste[0]; $val2 = $liste[1]; $val3 = $liste[2]; $val4 = $liste[3]; $val5 = $liste[4]; $val6 = $liste[5]; /* Ajouter un nouvel enregistrement dans la table */ $query = "INSERT INTO $table VALUES('$val1','$val2','$val3','$val4', '$val5', '$val6')"; $result= MYSQL_QUERY($query); if(mysql_error()) { /* Erreur dans la base de donnees, sûrement la table qu'il faut créer */ print "Erro na base de dados : ".mysql_error(); print "<br>Importação cancelada."; exit(); } else /* Tout va bien */ print "$val1 $val2 $val 3 $val4 $val5 $val6 <br>"; } echo "<br>Importação terminada com sucesso."; /* Fermeture */ fclose($fp); MYSQL_CLOSE(); break; /* FORMULAIRE DE CHOIX D'IMPORTATION */ default: ?> <?php echo "<form name='form1' method='post' action=".$_SERVER['PHP_SELF']." enctype='multipart/form-data'>"; ?> Escolha a tabela na qual pretende importar os dados <table border="0" cellspacing="0" cellpadding="3"> <tr> <td>Tabela :</td> <td> <select name="table" class="box_amostra" size="1" id="combustivel"> <option value="Tabela" selected>Tabela</option> <option value="escapes">Escapes</option> <option value="escapes_oportunidades">Oportinidades Escapes</option> <option value="escapes_prom_mes">Promoção Escapes</option> <option value="pneus">Pneus</option> <option value="pneus_oportunidades">Oportinidades Pneus</option> <option value="pneus_prom_mes">Promoção Pneus</option> </select> </td> </tr> <tr> <td>Ficheiro :</td> <td> <input type="file" name="fichier_u"> </td> </tr> <tr> <td></td> <td> <input type="submit" name="submit" value="Inserir"> </td> </tr> </table> <input type="hidden" name="action" value="ajouter"> </form> <?php break; } ?> </body> </html>
Partager