|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() julie Inscription : juin 2010 Messages : 36 ![]() |
Bonjour,
Je souhaite importer dans ma BDD le contenu d'un fichier excel. Voici mon code; Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Il faut pouvoir gérer l'encodage.
Excel encode en ANSI si je ne dit pas de bêtises. Après à voir en quoi est ta table et ton serveur PHP. On peut manipuler les encodages avec iconv ou mb. |
|
|
00
|
|
|
#3 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
C'est un fichier excel ou un CSV ?
|
|
|
00
|
|
|
#4 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
1 - utilise SplFileObject::fgetcsv (ou fgetcsv en procédural)
2 - utilise des requêtes préparées pour tes insertions 3 - utilise des REPLACE INTO au lieu d'INSERT INTO 4 - utilise la directive list pour setter plusieurs variables d'un coup 5 - vérifie que l'encodage est bon au niveau de la DB, de PHP et du fichier Excel Logiquement ça doit ressembler à ça un import CSV: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#5 | ||||
|
Invité de passage
![]() julie Inscription : juin 2010 Messages : 36 ![]() |
Merci pour vos réponses! Alors c'est bien un fichier excel en .xlsx, j'ai essayer de changer l'encodage avec iconv mais cela ne fonctionne pas et le résultat est vide, peut-être que excel ne code pas en ansi, ou alors je l'ai mi au bon endroit :
Code :
Alors voici mon nouveau code ; Code :
Fatal error: Call to a member function prepare() on a non-object in /web/pros/admin/importer_excel_cible.php on line 12 J'ai dû faire une erreur quelque part... j'ai copié le fichier sur le serveur, ce qui a fonctionné, j'espère que c'est ça qu'il fallait faire... Sinon j'avais encore plus de message d'erreur ^^' |
||||
|
|
00
|
|
|
#6 | |||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Voici comment créer une instance PDO: Code :
Note également que tu peux mettre ce que tu veux dans les placeholers pour plus de lisibilité. Par exemple: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||||
|
00
|
|
|
#7 | |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() julie Inscription : juin 2010 Messages : 36 ![]() |
@ sabotage : non mais c'est pas grave excel ou csv, on le transformera
Merci benjamin, je vais essayer ça, c'est vrai que je connaissais pas du tout il faut que je me mette à la page |
|
|
00
|
|
|
#9 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
C'est quand même ton problème de départ, tu lis un fichier excel comme ci c'etait un csv, tu obtiens donc n'importe quoi.
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() julie Inscription : juin 2010 Messages : 36 ![]() |
@ sabotage : non c'est bien un fichier .csv ne t'en fais pas. Et de toute façon quand c'était un fichier excel traité comme un fichier excel, cela ne marchait pas non plus.
Bon sinon j'ai rajouter la connexion à la bdd, plus de message d'erreur mais rien d'ajouter dans la bdd, y aurait-il un moyen de tester pour voir où est l'erreur?? ^^' |
|
|
00
|
|
|
#11 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Sabotage à raison, les fichiers CSV doivent être des fichiers plain-text.
Pour voir les messages d'erreur, on doit faire: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#12 |
|
Invité de passage
![]() julie Inscription : juin 2010 Messages : 36 ![]() |
j'ai placé ton bout de code dans la boucle while et j'ai le résultat suivant : "Erreur : with code Erreur : with code Erreur : with code"
Concernant le fichier csv j'en ai testé plusieurs différents; un qui était un .xlsx dont jai renommé l'extension, un que j'ai créé sous le bloc note avec des ";" en séparateur et nommé en .csv, des trucs comme ça et mon fichier apparait bien en .csv mais impossible d'en savoir plus et il a plus ou moins l'icône d'un fichier excel sauf qu'il y a un "a," écrit dessus. Ca doit etre du à mon microsoft office car avant mes fichiers .csv s'ouvraient dans le bloc note et non pas sous forme de classeur excel. Donc bon après je vois pas quoi faire d'autre il me parait correct ce fichier En même temps je suis pas spécialiste des fichiers de ce type donc si vous avez une solution je suis toute ouïe |
|
|
00
|
|
|
#13 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Excel est tout à fait capable de lire les fichiers .csv, qu'ils aient été crées dans le bloc note ou non. Voici un exemple de fichier CSV: Tout simplement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() julie Inscription : juin 2010 Messages : 36 ![]() |
Oui c'est comme ça que je l'ai créé donc je ne comprends pas que ça ne marche pas, le problème doit être ailleurs
|
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Chef de projet MOA Inscription : décembre 2004 Messages : 561 ![]() |
Voici ce que j'utilise pour traiter les fichiers Excel.
Le fichier import_excel.php contient le formulaire de traitement. Il faut également le fichier "reader.php" qui nécessite lui même le fichier "oleread.inc" Afin de pouvoir mettre le dernier fichier j'ai du le renommer en oleread.inc.php. Il te faudra retirer l'extension '.php'. |
|
|
00
|
|
|
#16 |
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 335 ![]() |
Salut,
A mon avis tu devrais suivre le conseil de sabotage et de Benjamin Delespierre : "Utilises un fichier CSV".
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com