Bonjour,

Je tente actuellement de créer un fichier CSV en langage PHP afin de pouvoir exploiter les données se trouvant dans ma base données.
J'ai donc écrit un script qui semble fonctionner correctement à l'aide de tableau, mais lorsque je tente d'y insérer les données de ma base cela provoque quelques problèmes.

Voici le script :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: attachment; filename=\"monsuperfichier.csv\"");
 
 
// ceci fonctionne parfaitement
/*$array = array( 
'france' => array('francais','60','paris'), 
'belgique' => array('francais','5','bruxelles'), 
'italie' => array('italien','55','rome')); 
*/
 
 
require('../connexion.php');
$sql = 'SELECT * FROM `solaire` WHERE `rueducommerce` = "Y" ORDER BY `marque`';
$result = mysql_query($sql);
 
//ouverture du tableau
echo '$array = array(';
 
			while($data = mysql_fetch_array($result))
			{
 
				$idproduit = $data['ref'];
				$idmarque = $data['marqu'];
				$reference = $data['ref'];
				$nom = $data['gamme'];
				$description = 'Lunettes de soleil '.$data['marque'];
				$technique = 'Type verre : '.$data['verre'].' - Catégorie : '.$data['protection'];
				$univers = 'LSMS';
				$image = 'image';
				$vignette = 'vignette';
				$poids = '200';
				$stock = '1';
				$pvht = $data['prix']/1.196;
				$pvhtPrive = $pvht/0.20;
				$coupcoeur = '0';
				$visible = '1';
				$prive = '0';
				$livrablePartenaire = '0';
				$tva = 19.6;
				$delais = '3';
 
 
//insertion des données dans le tableau
				echo ("'$idproduit'=> array('$idmarque','$reference','$nom','$description','$technique','$univers','$image','$vignette','$poids','stock','$pvht','pvhtPrive','coupcoeur','$visible','$prive','$livrablePartenaire','$tva','$delais'),");
 
			};
 
//fermeture du tableau
echo ');';
 
 
 
 
$csv = "idproduit;idmarque;reference;nom;description;technique;univers;image;vignette;poids;stock;pvht;pvht prive;coupcoeur;visible;prive;livrable partenaire;tva;delais\n"; 
 
// construction de chaque ligne 
foreach($array as $idproduit => $donnees) 
{ // on concatene a $csv 
$csv .= "$idproduit;".$donnees[0].';'.$donnees[1].';'.$donnees[2].';'.$donnees[3].';'.$donnees[4].';'.$donnees[5].';'.$donnees[6].';'.$donnees[7].';'.$donnees[8].';'.$donnees[9].';'.$donnees[10].';'.$donnees[11].';'.$donnees[12].';'.$donnees[13].';'.$donnees[14].';'.$donnees[15].';'.$donnees[16].';'.$donnees[17].'"\n"'; // le \n final entre " " 
} 
 
print($csv); 
exit; 
 
?>

Malheureusement j'ai bien l'impression d'être obliger de coller un ECHO dans mon WHILE pour imprimer les données dans le tableau qui me sert pour créer le CSV mais apparemment cela ne fonctionne pas.

Mon fichier CSV se créer bien mais le ECHO fait que tout ce qui se trouve dedans est imprimer dans une seule cellule au dessus du commencement du fichier CSV. Je ne sais pas si je me fais bien comprendre. Le seules données valide dans mon CSV sont les titres des colonnes.

Est ce que quelqu'un pourrait m'aider a résoudre ce problème ???

MERCI A TOUS