[RESOLU] Problème Export fichier en csv avec trop de caractere

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème Export fichier en csv avec trop de caractere

Re: Problème Export fichier en csv avec trop de caractere

par cricriguignard » 07 janv. 2022, 15:13

c'est bon j'ai réussi. merci pour ton aide pbarroca

Re: Problème Export fichier en csv avec trop de caractere

par cricriguignard » 07 janv. 2022, 12:20

pbarroca, mes colonnes s'affichent en double et je ne voudrais pas fairee afficher toutes les colonnes. comment je peux faire ?

$sql = "SELECT `projett`.`idprojet`,`projett`.`idchefprojet`,`projett`.`nomprojet`,`projett`.`description`,`projett`.`idetat`,`projett`.`idpriorite`,`projett`.`datefin`,`projett`.`dateprisecharge`, `chefprojet`.`nomchefprojet`,`chefprojet`.`prenomchefprojet`,`marque`.`nommarque`,`perimetre`.`nomperimetre`,`typologie`.`nomtypologie`,`etat`.`nometat`,".
"`priorite`.`nompriorite` ".
"FROM `projett` ".
"INNER JOIN `chefprojet` ON `chefprojet`.`idchefprojet` = `projett`.`idchefprojet` ".
"INNER JOIN `marque` ON `marque`.`idmarque` = `projett`.`idmarque` ".
"INNER JOIN `perimetre` ON `perimetre`.`idperimetre` = `projett`.`idperimetre` ".
"INNER JOIN `typologie` ON `typologie`.`idtypologie` = `projett`.`idtypologie` ".
"INNER JOIN `etat` ON `etat`.`idetat` = `projett`.`idetat` ".
"INNER JOIN `priorite` ON `priorite`.`idpriorite` = `projett`.`idpriorite` ".
"WHERE `projett`.`idprojet` LIKE '%$numidprojet_selectionnee%' AND `projett`.`idetat` NOT LIKE 5 ;";

$result_select = mysql_query($sql) or die(mysql_error());

$result_list = array();
while($row = mysql_fetch_array($result_select))
$result_list[] = $row;

//j'aimerai ces colonnes $csv = "Nom du projet;Chef de projet;Marque;Perimetre;Typologie;Ville;Date prise en charge;Date de fin;Etat;Priorite;Description;\n";

$fp_csv = fopen('php://memory', 'w+');
foreach($result_list as $donnees)
{
fputcsv($fp_csv, $donnees, ';');
}
rewind($fp_csv);
$csv = stream_get_contents($fp_csv);

Re: Problème Export fichier en csv avec trop de caractere

par cricriguignard » 07 janv. 2022, 11:24

Bonjour
oui ce sont mes sauts de ligne qui gene. je vais essayer votre fonction

Re: Problème Export fichier en csv avec trop de caractere

par pbarroca » 06 janv. 2022, 18:53

Hello,

À mon avis le problème n'est pas tant la longueur des données que le fait qu'elles puissent contenir des sauts de lignes qu'il faudrait échapper.

Pour ce faire j'aime bien utiliser la fonction fputcsv de php.
Comme cette fonction travaille sur les fichiers, cela donne un code qui ressemble à ça:
$fp_csv = fopen('php://memory', 'r+');
foreach(... as $datas) { // pour chacune des lignes de données
  fputcsv($fp_csv, $datas, ';'); // on les ajoute dans le fichier en mémoire, voir la doc php pour ce qu'on peut passer en paramètre
}
rewind($fp_csv); // on remet le pointeur de fichier au début
$csv = stream_get_contents($fp_csv); // on récupère le contenu du fichier dans une variable

Problème Export fichier en csv avec trop de caractere

par cricriguignard » 06 janv. 2022, 16:43

Bonjour

Je fais un export CSv à partir de ma base de données php.
J'ai un souci dans mon fichier csv, la colonne Description n'est pas bien formaté car je pense trop de lettre. toutes la zone description est sur plusieurs ligne et du coup décale tout.

auriez vous une solution ?


$sql = "SELECT `projett`.`idprojet`,`projett`.`nomprojet`,`projett`.`description` FROM `projett` ;";

$result_select = mysql_query($sql) or die(mysql_error());

$result_list = array();
while($row = mysql_fetch_array($result_select))
$result_list[] = $row;

$csv = "Nom du projet;Description;\n";

foreach($result_list as $donnees)
{
$csv .= $donnees['nomprojet'].";".$donnees['description']."\n";
$nomentier = $donnees['nomprojet'];

}

header("Content-Encoding: UTF-16LE,UTF-8");
header("Content-type: application/csv; charset=UTF-8");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-disposition: attachment; filename=Fichier_DetailDemande_Projetencours_selectionProjet_".$nomentier.".csv");
print($csv);
exit;