Impossible d'exporter un fichier csv suite à une erreur

Fermé
tsissam Messages postés 23 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 22 août 2017 - 26 mai 2015 à 17:26
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 - 27 mai 2015 à 17:18
bonjour, je suis entrain de développer une application qui permet d'exporter les fichiers excel .csv à partir de ma base mysql mais j'ai codé mon application et ça me donne cette erreur: Warning: trim() expects parameter 1 to be string, array given in D:\wamp\www\serge\cote-na-tshombo\fonctions\generate.php on line 57.

// nous parcourons $Row et on ajoute chaque valeur à la ligne
foreach ($Row as $clef=>$valeur)
$outputCsv .=trim($valeur).';'; c'est ici ma ligne 57



si quelqu'un a une idée peut m'aider svp

voici mon ma fonction

function fx_download_file_csv($id_promotion,$fileName){
global $cnx;

// la variable qui va contenir les donnees csv
$outputCsv='';

//// requete sql
$etu=$cnx->query("select * from etudiant join promotion on etudiant.id_promo=promotion.id_promo where etudiant.id_promo='$id_promotion'");
$resultEtu=$etu->fetchAll(PDO::FETCH_ASSOC);

if (count($resultEtu)>0) {
$i=0;

while ($Row=$resultEtu)
{
$i++;

//si c'est la première boucle nous affichons les noms des champs afin d'avoir les titres des colonnes

if ($i==1)
{
foreach ($Row as $clef=>$valeur)
$outputCsv .=trim($clef).';';

/// suppression du ; qui traine à la fin
$outputCsv= rtrim($outputCsv, ';');

/// saut de ligne
$outputCsv .="\n";

}

// nous parcourons $Row et on ajoute chaque valeur à la ligne
foreach ($Row as $clef=>$valeur)
$outputCsv .=trim($valeur).';'; c'est ici ma ligne 57

/// 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();
}
A voir également:

3 réponses

blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
26 mai 2015 à 17:50
Salut,

Es tu sûr que tous les champs sont renseignés dans ta base? Autrement dit es tu sûr que $value dans ta boucle ne vaut pas NULL à certain passage?
0
tsissam Messages postés 23 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 22 août 2017
27 mai 2015 à 16:28
Merci pour ta réponse, j'ai vu là ça ne marchait pas, maintenant je télécharge mais dans mon fichier il y a même les codes de ma page, comment faire en sorte que ça télécharge rien que mes data?
0
tsissam Messages postés 23 Date d'inscription dimanche 19 janvier 2014 Statut Membre Dernière intervention 22 août 2017
27 mai 2015 à 16:37
J'ai toujours besoin de vos aides, maintenant mon application marche bien car je télécharge déjà les fichiers .csv mais dans mon fichier il y et les codes de ma page et les données. j'ai changé les codes, voici maintenant ce que j'ai comme code

function fx_download_file_csv($id_promotion,$fileName){
global $cnx;

//Premiere ligne = nom des champs (
$xls_output = "Nom etudiant;Postnom;Telephone;Cote";
$xls_output .= "\n";

//Requete SQL

//$query='SELECT ni, ag, cact, cpat FROM indic';
//$result = mysql_query($query) or die(mysql_error());
$result=$cnx->query("select nom_etu,postnom_etu,tel_etu from etudiant join promotion on etudiant.id_promo=promotion.id_promo where etudiant.id_promo='$id_promotion'");
//$resultEtu=$etu->fetchAll(PDO::FETCH_ASSOC);

//Boucle sur les resultats
while($row = $result->fetch())
{
$tel=substr($row['tel_etu'], 4,9);
$xls_output .= "$row[nom_etu];$row[postnom_etu];$tel\n";
}

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=$fileName");
print $xls_output;
exit;
}


qui peut avoir l'idée?
0
blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
27 mai 2015 à 17:18
Je n'ai pas bien compris ton problème, qu'est ce qui ne fonctionne pas?
0