parcours de tableau associatif export csv
Bonjour,
Mon problème est le suivant :
J'exporte mes données provenant de ma base de données sous MySQL en fichier CSV. Les utilisateurs remplissent un formulaire, puis je fais un résumé en fichier CSV. J'ai notamment un textarea, où les utilisateurs peuvent écrire plusieurs lignes.
Tout fonctionne niquel (connexion à la base, inscription des données dans le fichiers), cependant, j'ai des problèmes au niveau du traitement de ces données. En effet, j'ai deux soucis majeurs :
- Retour à la ligne interprêtés dans Excel comme une nouvelle ligne à cause des "textarea".
- J'imagine que la fonction mysql_fetch_array utilisée conjointement à mysql_assoc me permet de parcourir le tableau, mais je n'y arrive pas. En effet, mon deuxième soucis est le suivant, je ne souhaite pas tout exporter dans ma base et faire un contrôle du contenu par une expression régulière. (2° export)
Voici mon code :
Code:
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 68 69 70
|
<?php
lecture_base();
function lecture_base()
{
require "baseconfig.php";
// on se connecte à MySQL
$db = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Impossible de se connecter : " . mysql_error());
// on selectionne la base
mysql_select_db($cfgBase,$db);
// on cree la requete SQL et on l'envoie
//$sql = "SELECT * FROM spip_auteurs ORDER BY nom";
$sql = "SELECT DISTINCT nom,ss_groupe,email,login,tel_fixe,fax,commentaires FROM spip_auteurs ORDER BY nom";
// on envoie la requete
$req = mysql_query($sql, $db) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
//echo $req;
$intitules = "nom;ss_groupe;email;login;tel_fixe;fax;commentaires\n";
//On recupere les donnees de la table dans un tableau associatif.
while ($data = mysql_fetch_array($req, MYSQL_ASSOC))
{
foreach($data as $value)
{
if(!eregi("admin[ab]",$data['Nom']))
{
$contenu .= $value.";";
}
}
$contenu .="\n";
}
$contenu = $intitules.$contenu;
//echo $contenu;
// on appelle la fonction de creation du csv.
Export_Excel($contenu);
// on ferme la connexion a mysql
mysql_close($db);
return(0);
}
function Export_Excel($contenu)
{
// on dit au navigateur qu'on va travailler dans un fichier csv
header("Content-Type: application/msexcel");
header("Content-disposition: attachment; filename=utilisateurs_".date("Ymd").".csv");
print $contenu;
exit;
}
?> |
Ici, j'exporte une base d'utilisateur, mais je souhaite que les administrateurs ne le soient pas... Malheureusement, ce tri ne fonctionne pas.
Les commentaires inclus dans un textarea lors de la création du formulaire me font sauter des lignes dans Excel....
Toute aide serait bienvenue.
Merci.