Le forum de la communauté PHP !
Vous n'êtes pas identifié.
bonsoir
voilà la problématique :
je récupère les données d'un formulaire dans un .php
$query = 'SELECT a, b, c, d FROM table WHERE w=1';
$result = mysql_query($query) or die(mysql_error());
$dn = mysql_fetch_array($result);;
Je voudrais récupérer les données contenues dans $dn sous forme d'un fichier exploitable sous excel :txt avec séparateur ou csv...
quelle est la marche à suivre ?
Doit-on inqiquer un chemin C:userdonnees.txt ou peut-on faire en sorte qu'il soit demandé à l'utilisateur où mettre le fichier. Déjà la première méthode me conviendrait car il suffirait d'afficher un message du genre "votre fichier donnees.txt se trouve sur c:/user"
Je sais que ma question ne correspond pas aux demandes habituelles car en fait je fais une utilisation statistique de php pour créer des formulaires de saisie qui alimentent une base de données et permettent d'afficher des tableaux statistiques.....
merci d'avance
Manuel
Hors ligne
moi aussi j'ai ce problème mais ne compte pas
strop sur les forums ; à part créer un livre d'or, faire un "chat", récupérer des messages ...enfin les trucs bateaux !!! il n'y a pas de vrais programmeurs où ils ne répondent pas. Moi j'ai créé mes scripts pour utilisation statistique tout seul vu que personne ne sait ou ne veut répondre
oui je vois...153 personnes l'ont lu et personne ne connait ou pire...ne veut donner la réponse...communauté PHP !! tu parles !!
Hors ligne
Pour les 176 personnes qui ont lu ma demande sans donner une réponse ou même une petite piste voici le script ...gratos...
il permet d'exporter directement en csv et en plus une fenêtre s'oivre pour demander si on veut le lire dans excel ou l'enregistrer...épatant non ?
<?
//accès à la la base de données
mysql_connect("localhost","root","") or die("La connexion a échoué !");
// on sélectionne la base
mysql_select_db("houssin");
//Premiere ligne = nom des champs (
$xls_output = "Numéro d'indicateur;Année de gestion;Code Action;Code PAT";
$xls_output .= "\n";
//Requete SQL
$query='SELECT ni, ag, cact, cpat FROM indic';
$result = mysql_query($query) or die(mysql_error());
//Boucle sur les resultats
while($row = mysql_fetch_array($result))
{
$xls_output .= "$row[ni];$row[ag];$row[cact];$row[cpat]\n";
}
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".csv");
print $xls_output;
exit;
?>
Et voilou simple non ?
merci pour votre aide et votre éminent savoir dans ce forum de "la communauté PHP"!!!
Hors ligne
Super merci, ce code m'a été très utile.
Par contre, j'ai essayé l'opération pour l'exporter en xls et cela a fonctioné.
Voici ce que j'ai modifié:
$xls_output = "Numéro d'indicateur\tAnnée de gestion\tCode Action;Code PAT"; //Pour obtenir des tabulations, on remplace les ; par \t
$xls_output .= "\n\r"; //Pour obtenir une ligne vide entre les en-tête de colonnes et les données
....
//Boucle sur les resultats
while($row = mysql_fetch_array($result))
{
$xls_output .= "$row[ni]\t$row[ag]\t$row[cact];$row[cpat]\n"; //Là aussi on remplace les ; par \t pour obtenir une tabulation
}
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".xls"); //On remplace csv par xls
print $xls_output;
exit;
?>
Pour ma part cela a fonctionné impec (Excel 2000) . Par contre il est préférable d'utiliser Internet Explorer car Firefox
demande bien ce qu'il faut faire avec le fichier, mais ne permet pas l'accès au bouton OK
Encore merci manuramolo pour ce tuyau
Hors ligne