Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/12/2010, 14h43   #1
Invité de passage
 
Inscription : août 2009
Messages : 21
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 21
Points : 1
Points : 1
Par défaut Problème d'insertion de données dans une base MySql à partir d'un fichier csv

Bonjour,
Je suis en train de faire un exemple simple d'import csv dans une base MySql, avec un script php.

Quand j'exécute le fichier, il me fait pas d'erreur, mais je vérifie ma table "exportscv" crée avec phpmyadmin avec les mêmes champs et type de données du fichier csv, et je trouve que la table reste vide avec phpmyadmin, voici mon code, Merci.

Code :
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
106
107
108
109
110
111
112
113
114
115
 
<html>
<header><title>Formulaire d'export d'un fichier csv dans bdd MySql</title></header>
	<body>
	<h1>Formulaire d'export d'un fichier CSV dans une bdd MySql</h1>
	<form method="post"  enctype="multipart/form-data"action="Exports.php";
 
	<b>Merci d'indiquer l'emplacement du fichier csv à uploader: </b><br/><br/>
	<input type="file" name="monfichier" file>
	<input type="submit" value="Envoyer">
	</form>
 
	<?php
	include ('functions.php');
		// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
	if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
		{
		//echo 'success';
		// Testons si le fichier n'est pas trop gros
		if ($_FILES['monfichier']['size'] <= 10000000)
			{
			// Testons si l'extension est autorisée
			$infosfichier = pathinfo($_FILES['monfichier']['name']);
			$extension_upload = $infosfichier['extension'];
			$extensions_autorisees = array('csv');
			if (in_array($extension_upload, $extensions_autorisees))
				{
			// On peut valider le fichier et le stocker définitivement
				move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' .
				basename($_FILES['monfichier']['name']));
				echo 'L\'envoi a bien été effectué !<br/><br/>';
				echo '<b>Informations sur le fichier uploadé: </b><br/>';
				echo '<b>Nome du fichier : </b>' .$_FILES['monfichier']['name']. '<br/>';
				echo '<b>Type du fichier : </b>' .$_FILES['monfichier']['type']. '<br/>';
				echo '<b>Taille du fichier : </b>' .$_FILES['monfichier']['size']. ' Octets<br/>';
 
				//$data = importcsv($_FILES['monfichier']['name'],true,";",1000)
 
				//Connexion à la base de donnée
				$bdd = connectMaBase();
 
				//echo "<table>\n";
 
				$row = 0;
				$handle = fopen($_FILES['monfichier']['name'], "r");
 
 
				while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) 
					{
					if ($row == 0) 
						{
						// this is the first line of the csv file
						// it usually contains titles of columns
						$num = count($data);
						//echo "<thead>\n<tr>";
						$row++;
						$i = 0;
						$champs = array($num);
						for ($c=0; $c < $num; $c++) 
							{
							//echo "<th>" . $data[$c] . "</th>";
							$champs[$i] = $data[$c];
							$i++;
							}
						for ($i = 0; $i< $num; $i++)
							echo $champs[$i].'   ';
						//echo "</tr>\n</thead>\n\n<tbody>";
						} 
					else 
						{
						// this handles the rest of the lines of the csv file
						$num = count($data);
						//echo "<tr>";
						$row++;
						for ($c=0; $c < $num; $c++) 
							{
							$bdd->exec('INSERT INTO exportcsv("'.$champs[$c].'")VALUES("'.$data[$c].'")');
							//echo 'inertion en base <br/>';
							//echo "<td>" . $data[$c]. "</td>";
							}
						//echo "</tr>\n";
						}
					}
				fclose($handle);
 
				//echo "</tbody>\n</table>";
 
 
				}
			else echo 'Le format de fichier est incorrect. Merci d\'envoyer un fichier csv';
 
 
 
			//$today = date("y-m-d");
			/*
			//Connexion à la base de donnée
			$bdd = connectMaBase();
			$bdd->exec('INSERT INTO utilisateurs VALUES("","ms","G","25","'.$today.'")');
			*/
 
			//suppression du fichier
			//unlink ('uploads/'.$_FILES['monfichier']['name']);
			//suppression('uploads/' , 'exe', '60');
 
 
			}
		}
 
	?>
 
 
 
 
	</body>
</html>
kazabandi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 18h05   #2
Membre actif
 
Tobbi Filteau
Inscription : mai 2010
Messages : 176
Détails du profil
Informations personnelles :
Nom : Tobbi Filteau

Informations forums :
Inscription : mai 2010
Messages : 176
Points : 177
Points : 177
le plus simple, je crois serait de faire afficher ta requête avec un echo pour voir ce qui est transmis à la BD:

Code :
1
2
3
4
5
6
7
8
9
10
 
for ($c=0; $c < $num; $c++) 
							{
							$bdd->exec('INSERT INTO exportcsv("'.$champs[$c].'")VALUES("'.$data[$c].'")');
echo 'INSERT INTO exportcsv("'.$champs[$c].'")VALUES("'.$data[$c].'")'; //un echo pour voir la requete
							//echo 'inertion en base <br/>';
							//echo "<td>" . $data[$c]. "</td>";
							}
						//echo "</tr>\n";
						}
osuwariboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h52.


 
 
 
 
Partenaires

Hébergement Web