Script d'importation automatique de CSV vers BDD [Résolu]

jeinny 133 Messages postés mardi 3 juin 2008Date d'inscription 17 février 2010 Dernière intervention - 9 juin 2009 à 08:47 - Dernière réponse : nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention
- 10 juin 2009 à 01:17
Bonjour à tous!

Je vous explique ma situation :
je dois récupérer des données excel qui sont au format csv, et les intégrer dans une BDD mysql.

Le problème est que mes employeurs souhaitent que je réalise une interface en php qui proposent un bouton d'importation qui gere automatiquement cette intégration.
en gros : un bouton qui ouvre un explorateur de fichiers, on choisi le csv que l'on veut, on valide et hop le csv est converti directement dans la BDD.

Ceci me paraît assez difficile vu mon niveau en php même si ce stage m'a beaucoup appri. De plus, ce ne sera pas moi qui gèrera l'intégration de ces fichiers CSV dans la BDD. Ce sera un utilisateur quelconque, qui ne devra rien faire d'autre que d'importer le fichier, sans gérer les paramètres de la BDD, d'où cette interface simplifiée que je dois créer...

y a-t-il quelqu'un qui a déjà été confronté à cette situation et/ou qui pourrait me preter main forte?
merci beaucoup!

Jeinny
Afficher la suite 

Votre réponse

2 réponses

jeinny 133 Messages postés mardi 3 juin 2008Date d'inscription 17 février 2010 Dernière intervention - 9 juin 2009 à 10:20
+3
Utile
C'est bon jai répondu toute seule a ma question
si certain ca les intéressse je vous laiise mon code: 

<?
// ne pas oublier l'ouverture  l connection à la base 

//Le chemin d'acces a ton fichier sur le serveur
$fichier = fopen("nom_du_fichier.text_ou_.csv", "r");

//tant qu'on est pas a la fin du fichier :
while (!feof($fichier))
{
// On recupere toute la ligne
$uneLigne = fgets($fichier, 1024);
//On met dans un tableau les differentes valeurs trouvés (ici séparées par un ';')
$tableauValeurs = explode(';', $uneLigne);
// On crée la requete pour inserer les donner (ici il y a 12 champs donc de [0] a [11])
$sql="INSERT INTO Balance VALUES ('".$tableauValeurs[0]."', '".$tableauValeurs[1]."', '".$tableauValeurs[2]."', '".$tableauValeurs[3]."', '".$tableauValeurs[4]."', '".$tableauValeurs[5]."', '".$tableauValeurs[6]."', '".$tableauValeurs[7]."', '".$tableauValeurs[8]."', '".$tableauValeurs[9]."', '".$tableauValeurs[10]."', '".$tableauValeurs[11]."')";

$req=mysql_query($sql)or die (mysql_error());
// la ligne est finie donc on passe a la ligne suivante (boucle)
}
//vérification et envoi d'une réponse à l'utilisateur
if ($req)
{
echo"Ajout dans la base de données effectué avec succès";
}
else
{
echo"Echec dans l'ajout dans la base de données";
}

?>












  Jeinn
y
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jeinny
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 10 juin 2009 à 01:17
0
Utile
Bonsoir,

Ta solution fonctionne effectivement, mais il serait plus simple d'utiliser directement fgetcsv qui te retourne la ligne dans un tableau.
http://fr3.php.net/manual/fr/function.fgetcsv.php
Commenter la réponse de nautilus99

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.