Salut à tous,
j'ai un petit bout de code que exporte une bdd dans un fichier csv.
Jusqu’à la pas de blem.
par contre j'aurai besoin d'ajouter un ";" a la fin de chaque email dans le fichier exporter.
le souci c'est qu'il prends le ";" que j'ajoute dans la colonne email comme un delimiteur. et donc cela pose probleme dans la génération du fichier csv.
Merci de votre aide
Modifié par spawns (05 Nov 2013 - 01:37)
      
      
    j'ai un petit bout de code que exporte une bdd dans un fichier csv.
Jusqu’à la pas de blem.
par contre j'aurai besoin d'ajouter un ";" a la fin de chaque email dans le fichier exporter.
// la variable qui va contenir les données CSV
$outputCsv = '';
// Nom du fichier final
$fileName = 'export-liste-partenaire.csv';
$requete = "SELECT   mail,nom,adresse,cp,ville,tph  FROM user WHERE lvl=1 ORDER BY nom ASC";
$sql = mysql_query($requete);
if(mysql_num_rows($sql) > 0)
{
    $i = 0;
    while($Row = mysql_fetch_assoc($sql))
    {
        $i++;
		$lemail=$Row["mail"];
        // Si c'est la 1er boucle, on affiche le nom des champs pour avoir un titre pour chaque colonne
        if($i == 1)
        {
			$outputCsv = 'Mail;Nom;Adresse;Code_Postal;Ville;Telephone';
			$outputCsv .= "\n";
        }
		$Row["mail"]= empty($Row["mail"]) ? "" :  $Row["mail"].";";
        // On parcours $Row et on ajout chaque valeur à cette ligne
        foreach($Row as $clef => $valeur)
		
            $outputCsv .= trim(utf8_decode($valeur=str_replace(array(''',"\n","<br />"),array('\''," "," "),$valeur))).";";
        // Suppression du ; qui traine à la fin
        $outputCsv = rtrim($outputCsv, ";");
        // Saut de ligne
        $outputCsv .= "\n";
    }
}
else
    exit('Aucune donnée à enregistrer.');
  
// Entêtes (headers) PHP qui vont bien pour la création d'un fichier Excel CSV
header("Content-disposition: attachment; filename=".$fileName);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/vnd.ms-excel\n");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
echo $outputCsv;
exit();
le souci c'est qu'il prends le ";" que j'ajoute dans la colonne email comme un delimiteur. et donc cela pose probleme dans la génération du fichier csv.
Merci de votre aide
Modifié par spawns (05 Nov 2013 - 01:37)