Impossible d'exporter un fichier csv suite à une erreur
                    
        
     
             
                    tsissam
    
        
    
                    Messages postés
            
                
     
             
            29
        
            
                                    Statut
            Membre
                    
                -
                                     
blackduck Messages postés 902 Statut Membre -
        blackduck Messages postés 902 Statut Membre -
        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();
}
                
            
                
    
    
    
        // 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:         
- Impossible d'exporter un fichier csv suite à une erreur
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier impossible à supprimer - Guide
- Fichier rar - Guide
3 réponses
                        
                    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?
 
                
                
    
                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?
                
        
     
             
                    tsissam
    
        
    
                    Messages postés
            
                
     
             
            29
        
            
                                    Statut
            Membre
                    
    
    
    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?
    
    
                        
                    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?
    
                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?
