Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1420 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP4+Oracle 8=> CSV

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP4+Oracle 8=> CSV

n°1831265
jocastt
Posté le 24-12-2008 à 12:37:50  profilanswer
 

Bonjour à toutes et à tous.
Bonne fête de fin d'année ! :)
 
Voilà j'ai un petit soucis, je veux exporter certaines infos d'une table ORACLE vers un fichier csv.
Tout semble aller jusqu'à l'ouverture du CSV créé, et là je m'aperçois que pour chaque ligne, mes champs sont mis dans la première cellule.
 
Alors je vous passe mon code, en espérant qu'il ne soit pas trop dégueu. ^^
 

Code :
  1. header("Content-Type: application/csv" );
  2. header("Content-disposition: filename=abonnes.csv" );
  3. $query_abonnes="MA REQUETE QUI FONCTIONNE";
  4. $sql=ociparse($conn,$query_abonnes);
  5. ociexecute($sql);
  6. $numcols=ocinumcols($sql);
  7. $nbresults=1;
  8. $col=Array();
  9. $row=Array();
  10. $contenu='';
  11. if($numcols!=0){
  12. for ($i=1; $i<=$numcols; $i++){
  13.  // Pour chaque colonne de chaque ligne
  14.  $col[$i]  = ocicolumnname($sql, $i);
  15.  $contenu .= $col[$i].';';
  16. }
  17. $contenu .= "\n";
  18. while(ocifetch($sql)){//A chaque résultat retourné,  
  19.   for($j=1;$j<=$numcols;$j++){ //Pour chaque colonne de la ligne en question
  20.    $results[$nbresults][$j]=str_replace("\n", " ", (ociresult($sql,($col[$j]))));
  21.    $contenu .= $results[$nbresults][$j].';';
  22.   }
  23.  $nbresults++;//on ajoute 1 a la variable nbresults
  24.  $contenu .= "\n";
  25. }
  26. }


 
la variable contenu contient au final en brut :  
colonne1;colonne2;colonne3;colonne4;colonne5;colonne6;colonne7;colonne8;colonne9;colonne10;colonne10;colonne11;
champ1;champ2;champ3;champ4;champ5;champ6;champ7;champ8;champ9;champ10;champ10;champ11;
 
En gros dans le fichier exporté,  
toutes mes colonnes se trouvent dans la colonne1
et tous mes champs se trouvent dans le champ1
 
Peut-être un problème de content type..., ou quelquechose d'encore plus simple qui ne me saute pas aux yeux :/ :??:  
Merci pour le coup de main. :hello:


Message édité par jocastt le 24-12-2008 à 13:03:14
mood
Publicité
Posté le 24-12-2008 à 12:37:50  profilanswer
 

n°1831272
jocastt
Posté le 24-12-2008 à 13:01:34  profilanswer
 

Alors finalement le code n'est sans doute pas en cause,  
 
J'ai ouvert un csv provenant d'un autre site et j'ai le même soucis.
 
Surement un problème avec Excel Donc... (on aurai pu s'en douter aussi :) )
Pour info j'utilise Office 2007 au boulot.  
 
Je vous tiens au courant ;)
 
Ah... J'ai l'impression qu'en utilisant des ',' au lieu des ';'... Ca règle le problème, mais je ne sais pas ce que ca rend avec les autres versions de excel.
 
 
Un autre petit détail.
J'ai un champ telephone. Quand je le récupère de ma base de données j'ai bien le bon numéro. (01XXXXXXX). Mais impossible de l'afficher normalement nattivement dans excel. (Il me vire le 0 :( ) Ce qui me donne 1XXXXXXXX (c'est moche).  
 
Une astuce à me proposer ? :=)


Message édité par jocastt le 24-12-2008 à 14:52:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP4+Oracle 8=> CSV

 

Sujets relatifs
script Oracle vers PostgreSQLdrivers Oracle
Migration Oracle 8 vers 10 et application VB5Modification de la taille d'un champ sous Oracle
[RESOLU] Parsing de CSV avec Text::CSV_XC ou à l'arracheConnexion PHP/Oracle
Export requete oracle en CSV via la ligne de commande[Livre] pour bien commencer avec ORACLE
exemple syntaxe dictionnaire des données oracle 
Plus de sujets relatifs à : PHP4+Oracle 8=> CSV


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR