PHP4+Oracle 8=> CSV

PHP4+Oracle 8=> CSV - PHP - Programmation

Marsh Posté le 24-12-2008 à 12:37:50    

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
Reply

Marsh Posté le 24-12-2008 à 12:37:50   

Reply

Marsh Posté le 24-12-2008 à 13:01:34    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed