PHP : charger un fichier .csv...

Résolu/Fermé
Nikoninho Messages postés 57 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 16 mai 2008 - 3 avril 2008 à 12:00
 im@ne - 16 mai 2008 à 22:11
Bonjour,

Je suis actuellement en stage et je recherche des solutions pour effectuer le travail qui m'est demandé.
Je vous explique le contenu de mon travail pour que vous compreniez ce que je cherche à faire (attention c'est assez compliqué ;) ) :

Je dois créer une interface PHP pour permettre la saisie de données des utilisateurs dans une base de données.
Pour faciliter cette saisie, j'ai à disposition une autre base de données (que je dois créer à partir d'un fichier .mdb) dans laquelle j'irai piocher des informations.

Pour l'instant je n'ai absolument rien fait, car je viens de commencer mon stage. Mais ne vous inquiétez pas je ne vais pas vous demander de faire mon stage!!! J'aimerais simplement avoir votre avis sur mes choix ainsi que des conseils, si vous en avez.

En fait j'ai deja reflechi à un ensemble de solutions face aux divers problémes rencontrés :

1) fichier .mdb : comment faire pour mettre à jour ma base de données grâce à ce fichier ?
REPONSE : j'ouvre ce fichier .mdb grâce à microsoft access, je l'exporte en format .csv (c'est une option d'access)
ensuite je crée un script PHP qui récupére ce fichier .csv, qui l'ouvre en lecture, récupére chaque ligne du fichier pour ensuite (par l'intérmediaire d'une boucle) crée une requete d'insertion dans la base....
Ca va? Vous suivez?

J'ai réalisé un petit script PHP que j'ai intégré dans un .htlm qui tente de recuperer le fichier .csv sur mon bureau et de l'ouvrir ==> probleme sa ne fonctionne pas...

je vous envoie le script pour que vous puissiez me dire ou se situe le probleme :

<html>

<head>
<title> recupcsv</title>
</head>

<body>
Le fichier va se lancer...
<?php


// recuperer le csv
$fp = fopen("C:\Users\Niwok\Desktop\qe164.csv","r"); // accés en lecture au fichier csv
if (!$fp = fopen("C:\Users\Niwok\Desktop\qe164.csv","r")) {
echo "Echec de l'ouverture du fichier"; // si le fichier ne s'ouvre pas on affiche un message d'erreur
exit;

}
else {
echo "C'est bon c'est ouvert";

}

?>

</body>
</html>

VOILA! MERCI POUR VOTRE PATIENCE!!!
A voir également:

1 réponse

Nikoninho Messages postés 57 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 16 mai 2008 3
4 avril 2008 à 08:44
C'est ok! j'ai resolu le problemel!!
-1
bonsoir est ce que je peux savoir comment tu as resolu le probleme car je suis bloquee sur la meme chose
et merci
0
Nikoninho Messages postés 57 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 16 mai 2008 3 > IMANE2008
16 mai 2008 à 16:40
Salut,

//***************************** RECUP DONNES ET INSERT DANS BD***********************
//***********************************************************************************

$fp = @fopen("tonfichier.csv", "r"); // ouvrir le fichier qui se situe a la racine (avec tes fichiers sources, sinon tu met l'arboresence) 
set_time_limit(10000); // temps dexecution du script le plus longtemps possible ,si cette instruction n'y est pas le temps d'execution d'un script est de 30 secondes par defaut cela pose un probleme lorsque l'on doit traiter de gros fichiers comme c'est mon cas ici 

if($fp){
                echo "Traitement en cours (attendez la fin du chargement)";
	while (!feof($fp)) // tant que ce n'est pas la fin du fichier boucler	
{ 	
		$ligne = @fgets($fp, 1024); // on recupere dans la variable ligne le contenu de la premiere ligne (1024 est le nombre de caracteres récupérés par ligne)
	
			$split=split(";",$ligne); // la fonction split permet de recuperer des parties de caracteres dans une ligne : ici on indique que l'on prend tous les caracteres depuis le debut du curseur jusqu'au caractere ";"

//************************* ON STOCKE LES RESULTATS DANS UN TABLEAU***************
//*******************************************************************************
$commune=$split[0];
$codepostal=$split[8];
				
//******************************** creation et envoi de la requete **********************
//***************************************************************************************

$query = "INSERT INTO infocommune VALUES ('$commune','$codepostal',NULL)";
$result = mysql_query($query);	
}
}
 else{
echo "Probleme : le fichier indiqué n'existe pas";
}
 
fclose($fp); // il faut fermer le fichier que l'on a ouvert aprés utilisation
mysql_close(); // ne pas oublier de fermer la base de données


Voila bonne chance, si tu as des question n'hesites pas !!!
0
im@ne > Nikoninho Messages postés 57 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 16 mai 2008
16 mai 2008 à 22:11
merci d'avoir pris la peine de me repondre
0